https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116343
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2024-08-12 Status|UNCONFIRMED |NEW --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ``` trying to combine definition of r101 in: 20: r101:SI=0 into: 57: {r103:SI=r103:SI>>r101:SI#0;clobber flags:CC;} REG_DEAD r101:SI REG_UNUSED flags:CC REG_EQUAL 0x1>>r101:SI#0 instruction becomes a no-op: (parallel [ (set (reg:SI 103 [ a_lsm.11D.2845 ]) (reg:SI 103 [ a_lsm.11D.2845 ])) (clobber (reg:CC 17 flags)) ]) original cost = 4 + 4, replacement cost = 2147483647; keeping replacement rescanning insn with uid = 57. updating insn 57 in-place verify found no changes in insn with uid = 57. deleting insn 20 deleting insn with uid = 20. ```` So if noop_move_p is true (which in this case it is), we don't remove the clobbers unlike in ths case of !noop_move_p .