https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91384
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |law at redhat dot com --- Comment #6 from Jeffrey A. Law <law at redhat dot com> --- Couldn't cmpelim realize insn6 sets the condition codes in a useful way in this RTL: (insn 29 3 6 2 (set (reg/v:SI 40 r12 [orig:82 <retval> ] [82]) (reg/v:SI 5 di [orig:83 a ] [83])) "j.c":9:9 67 {*movsi_internal} (nil)) (insn 6 29 7 2 (parallel [ (set (reg/v:SI 40 r12 [orig:82 <retval> ] [82]) (neg:SI (reg/v:SI 40 r12 [orig:82 <retval> ] [82]))) (clobber (reg:CC 17 flags)) ]) "j.c":9:9 525 {*negsi2_1} (nil)) (insn 7 6 8 2 (set (reg:CCZ 17 flags) (compare:CCZ (reg/v:SI 5 di [orig:83 a ] [83]) (const_int 0 [0]))) "j.c":9:6 7 {*cmpsi_ccno_1} (nil)) (jump_insn 8 7 9 2 (set (pc) (if_then_else (eq (reg:CCZ 17 flags) (const_int 0 [0])) (label_ref 13) (pc))) "j.c":9:6 736 {*jcc} If we're just interested in CC_Z, then we could use the output of insn 7 rather than needing a distinct test insn.