This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/86166] ICE in convert_move, at expr.c:299 on aarch64-linux-gnu


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86166

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
#1  0x000000000095260a in convert_move (to=0x7ffff6a60e28, 
    from=0x7ffff6a60c18, unsignedp=1)
    at /space/rguenther/src/svn/gcc-6-branch/gcc/expr.c:299
299           gcc_assert (GET_MODE_BITSIZE (from_mode) == GET_MODE_BITSIZE
(to_mode));
(gdb) p debug_rtx (to)
(reg:HI 79)
$1 = void
(gdb) p debug_rtx (from)
(reg:V4HI 73 [ b.0_2 ])
$2 = void
...
#7  0x0000000000baaf12 in expand_unop (mode=HImode, unoptab=bswap_optab, 
    op0=0x7ffff6a60c18, target=0x0, unsignedp=1)
    at /space/rguenther/src/svn/gcc-6-branch/gcc/optabs.c:2705
2705      temp = expand_unop_direct (mode, unoptab, op0, target, unsignedp);
(gdb) p op0
$3 = (rtx) 0x7ffff6a60c18
(gdb) p debug_rtx (op0)
(reg:V4HI 73 [ b.0_2 ])
$4 = void

so bswap:HI on a V4HI operand.

  /* Rotation of 16bit values by 8 bits is effectively equivalent to a bswaphi.
     Note that this is not the case for bigger values.  For instance a rotation
     of 0x01020304 by 16 bits gives 0x03040102 which is different from
     0x04030201 (bswapsi).  */
  if (rotate
      && CONST_INT_P (op1)
      && INTVAL (op1) == BITS_PER_UNIT
      && GET_MODE_SIZE (scalar_mode) == 2
      && optab_handler (bswap_optab, HImode) != CODE_FOR_nothing)
    return expand_unop (HImode, bswap_optab, shifted, NULL_RTX,
                                  unsignedp);

where trunk passes mode instead of HImode.

PR83623.

*** This bug has been marked as a duplicate of bug 83623 ***

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]