https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115612
--- Comment #2 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Kewen Lin from comment #1) > 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. Or, the obvious thing: if something as basic as a trivial ten-year old cleanup commit cause "trouble" with some new development, well, then maybe the problem is with that new development? Late combine *by definition* has to test for can_create_new_pseudos itself. So it should.