https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119594
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Note, with the PR115910 patch this is latent again, the difference is one extra
(expr_list:REG_EQUAL (const_int 4294967295 [0xffffffff])
note.
(insn 28 27 29 (set (reg:DI 105)
(const_int 4294967295 [0xffffffff])) "pr119594.c":12:3 -1
(nil))
(insn 29 28 30 (set (reg:DI 5 di)
(reg:DI 105)) "pr119594.c":12:3 -1
(nil))
vs.
(insn 28 27 29 (set (reg:DI 105)
(const_int 4294967295 [0xffffffff])) "pr119594.c":12:3 -1
(nil))
(insn 29 28 30 (set (reg:DI 5 di)
(reg:DI 105)) "pr119594.c":12:3 -1
(expr_list:REG_EQUAL (const_int 4294967295 [0xffffffff])
(nil)))
from expansion and with many further changes during fwprop1, starting with
-original cost = 1, replacement cost = 5; rejecting replacement
-change not profitable Setting REG_EQUAL note
+original cost = 4, replacement cost = 4; keeping replacement
+rescanning insn with uid = 26.
+updating insn 26 in-place
+verify found no changes in insn with uid = 26.
propagating insn 26 into insn 27, replacing:
(set (reg/v:DI 101 [ g ])
(reg:DI 104 [ g ]))
-successfully matched this instruction to *zero_extendsidi2:
+successfully matched this instruction to *movdi_internal:
(set (reg/v:DI 101 [ g ])
- (zero_extend:DI (subreg:SI (reg/v:DI 101 [ g ]) 0)))
-original cost = 4, replacement cost = 1; keeping replacement
+ (const_int 4294967295 [0xffffffff]))
+original cost = 4, replacement cost = 4; keeping replacement
rescanning insn with uid = 27.
updating insn 27 in-place
verify found no changes in insn with uid = 27.