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.

Reply via email to