https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70873
Bernd Schmidt <bernds at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |UNCONFIRMED Ever confirmed|1 |0 --- Comment #6 from Bernd Schmidt <bernds at gcc dot gnu.org> --- So the problem seems to be peep2 runs before regrename. If you always want to generate two instructions there, then yes, a splitter would probably be better. Actually just changing define_peephole2 to define_split seems to do the trick, can you try whether that fixes the performance regression (I don't have a Haswell machine)?