https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93002
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The peephole2, if we go that way, would need to change something like: (insn 8 7 10 3 (parallel [ (set (reg/v:SI 0 ax [orig:82 i ] [82]) (plus:SI (reg/v:SI 0 ax [orig:82 i ] [82]) (const_int -1 [0xffffffffffffffff]))) (clobber (reg:CC 17 flags)) ]) "pr93002-2.c":7:11 185 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))) (insn 10 8 11 3 (set (reg:CCZ 17 flags) (compare:CCZ (reg/v:SI 0 ax [orig:82 i ] [82]) (const_int -1 [0xffffffffffffffff]))) "pr93002-2.c":7:9 11 {*cmpsi_1} (nil)) (jump_insn 11 10 22 3 (set (pc) (if_then_else (ne (reg:CCZ 17 flags) (const_int 0 [0])) (label_ref:DI 9) (pc))) "pr93002-2.c":7:9 708 {*jcc} (expr_list:REG_DEAD (reg:CCZ 17 flags) (int_list:REG_BR_PROB 1063004412 (nil))) -> 9) into: (insn 8 7 11 3 (parallel [ (set (reg:CCC 17 flags) (compare:CCC (plus:SI (reg/v:SI 0 ax [orig:82 i ] [82]) (const_int -1 [0xffffffffffffffff])) (const_int -1 [0xffffffffffffffff]))) (set (reg/v:SI 0 ax [orig:82 i ] [82]) (plus:SI (reg/v:SI 0 ax [orig:82 i ] [82]) (const_int -1 [0xffffffffffffffff])))) ]) "pr93002-2.c":7:11 ...) (jump_insn 11 8 22 3 (set (pc) (if_then_else (eq (reg:CCC 17 flags) (const_int 0 [0])) (label_ref:DI 9) (pc))) "pr93002-2.c":7:9 708 {*jcc} (expr_list:REG_DEAD (reg:CCZ 17 flags) (int_list:REG_BR_PROB 1063004412 (nil))) -> 9)