https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87902
--- Comment #1 from Ilya Leoshkevich <iii at linux dot ibm.com> --- Bisect points to r265398: combine: Do not combine moves from hard registers. I wonder what would be the best place to fix this? I was thinking about making shrink-wrapping try harder by not limiting the processing to the first basic block.