https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109566
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ah, but that actually isn't the problem, rather just useless clutter. The problem is that (jump_insn 10 7 32 2 (parallel [ (set (pc) (if_then_else (eq (and:DI (reg:DI 9 9 [121]) (const_int 2146435072 [0x7ff00000])) (const_int 0 [0])) (label_ref:SI 40) (pc))) (clobber (reg:DI 9 9 [125])) (clobber (reg:CC 100 0)) ]) "pr109566-3.c":6:6 229 {*branch_anddi3_dot} (int_list:REG_BR_PROB 708669604 (nil)) -> 40) is split into: (insn 43 7 44 2 (parallel [ (set (reg:CC 100 0) (compare:CC (and:DI (ashift:DI (reg:DI 9 9 [121]) (const_int 33 [0x21])) (const_int -9007199254740992 [0xffe0000000000000])) (const_int 0 [0]))) (clobber (reg:DI 9 9 [125])) ]) "pr109566-3.c":6:6 -1 (nil)) (jump_insn 44 43 32 2 (set (pc) (if_then_else (eq:CCEQ (reg:CC 100 0) (const_int 0 [0])) (label_ref 40) (pc))) "pr109566-3.c":6:6 -1 (int_list:REG_BR_PROB 708669604 (nil)) -> 40) and the first instruction isn't recognized.