https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115612
--- Comment #1 from Kewen Lin <linkw at gcc dot gnu.org> --- Thanks for filing this! For the given example, previously split1 splits ordered test into unordered test + xor, late-combine pass recombines them into ordered test then split2 fails to create a pseduo after RA. There seems two alternatives, adding can_create_pseudo_p() to define_insn condition to stop late-combine after RA to re-combine it, or appending a match_scratch to get temp register for rtx tmp after RA. IMHO we don't expect to see ordered test after RA any more, so the former is preferred? but people can argue that the latter is more flexible. Segher originated these define_insn_and_split, looking forward to his opinion. Need more checkings for the other failures.