https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71118
--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> --- This is caused by https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01445.html . After the change, the hard (argument) register is no longer propagated into the (set (int reg) (subreg of fp reg)), and then IRA puts the fp reg in memory. We should find a way to express the conversion in a way that we can match it to its own instruction (it matches the generic integer pattern now, nothing looks inside the subreg), or if it has to go through memory, do that at expand time already.