https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87065
--- Comment #6 from Segher Boessenkool <segher at gcc dot gnu.org> --- So this is when trying Trying 60, 63 -> 67: 60: r163:V4SI=r127:V4SI==r162:V4SI REG_DEAD r127:V4SI REG_EQUAL r127:V4SI==const_vector 63: r164:V4SI=r188:V4SI-r163:V4SI 67: r166:V4SI={(r163:V4SI)?r164:V4SI:r190:V4SI} REG_DEAD r164:V4SI REG_DEAD r163:V4SI That looks fine as far as I see. but, gdb on it: (gdb) frame 6 #6 0x0000000000dbf196 in simplify_binary_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) () at /home/segher/src/gcc/gcc/simplify-rtx.c:2167 2167 tem = simplify_binary_operation_1 (code, mode, op0, op1, trueop0, trueop1); (gdb) p op0 $1 = (rtx) 0x7ffff04e6f30 (gdb) pr (reg:V4SI 188) (gdb) p op1 $2 = (rtx) 0x7ffff03254a0 (gdb) pr (const_int 1 [0x1]) It is using the "==" as a const_int, while it should be a const_vector here?