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 ***