https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119428
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ``` Trying 11, 10, 12 -> 13: 11: r113:SI=0x1 10: {r111:SI=r107:SI&0x7;clobber flags:CC;} REG_DEAD r107:SI REG_UNUSED flags:CC 12: {r112:SI=r113:SI<<r111:SI#0;clobber flags:CC;} REG_DEAD r113:SI REG_DEAD r111:SI REG_UNUSED flags:CC REG_EQUAL 0x1<<r111:SI#0 13: r114:QI=~r112:SI#0 REG_DEAD r112:SI Failed to match this instruction: (set (reg:QI 114 [ _7 ]) (rotate:QI (const_int -2 [0xfffffffffffffffe]) (subreg:QI (and:SI (reg/v:SI 107 [ nrD.2860 ]) (const_int 7 [0x7])) 0))) Splitting with gen_split_686 (i386.md:18158) Successfully matched this instruction: (set (reg:QI 117) (const_int -2 [0xfffffffffffffffe])) Successfully matched this instruction: (set (reg:QI 114 [ _7 ]) (rotate:QI (reg:QI 117) (subreg:QI (reg/v:SI 107 [ nrD.2860 ]) 0))) allowing combination of insns 10, 11, 12 and 13 original costs 4 + 4 + 4 + 4 = 16 replacement costs 4 + 4 = 8 deferring deletion of insn with uid = 11. deferring deletion of insn with uid = 10. modifying insn i2 12: r117:QI=0xfffffffffffffffe deferring rescan insn with uid = 12. modifying insn i3 13: {r114:QI=r117:QI<-<r107:SI#0;clobber flags:CC;} REG_UNUSED flags:CC REG_DEAD r117:QI REG_DEAD r107:SI deferring rescan insn with uid = 13. ``` Before there was no REG_DEAD for 117. But the REG_DEAD there is correct and not wrong.