https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90007
--- Comment #2 from Alexander Monakov <amonakov at gcc dot gnu.org> --- We have a pseudo:SI<-hardreg:SI assignment followed by pseudo:DF<-float(pseudo:SI) conversion, and we substitute the latter through the former, creating a pseudo:DF<-float(hardreg:SI) insn that fails in recog. I'm not exactly sure why RA would reject reloading the operand when it's a hardreg, but happily reload when it's a pseudo. Am I missing something obvious, or are such constraints written down somewhere?