https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87871
--- Comment #51 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- (In reply to Segher Boessenkool from comment #50) > The insn is > > (insn 7 3 8 2 (parallel [ > (set (reg:CC 100 cc) > (compare:CC (reg:SI 0 r0 [116]) > (const_int 0 [0]))) > (set (reg/v:SI 4 r4 [orig:112 a ] [112]) > (reg:SI 0 r0 [116])) > ]) "ira-shrinkwrap-prep-1.c":17:6 188 {*movsi_compare0} > (nil)) > > and that isn't split, and then prepare_shrink_wrap gives up on it. In the more general case splitting this would produce worse code, not better, since then we'd end up with two instructions rather than one.