https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80239
--- Comment #5 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- (In reply to Thomas Preud'homme from comment #1) > > I believe the problem is that the equivalence stays with NO_REGS as register > class instead of being given that of a register (since it's going to be > reloaded into a register). My patch follows that path and as said above > works just after r235184 but the performance remains worse on recent trunk. > > When looking at code generated by recent trunk, the issue mentionned in the > original post is not there which suggest that something else is at play. I bisect this issue down to r239561 and reverting that commit on top of current trunk is enough to bring the performance back up. I'll still push the patch I mentioned above forward but given the circumstances I will wait for GCC 8 stage 1 for doing so. I'll post a testcase of the issue as soon as I have understood what is the source of the slowdown with r239561 in current trunk.