https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101882
--- Comment #19 from Segher Boessenkool <segher at gcc dot gnu.org> --- Hi Peter! (In reply to Peter Bergner from comment #18) > So the error message is coming from this hunk in my patch: > > + /* Both the earlyclobber operand and conflicting operand > + cannot both be user defined hard registers. */ > + if (HARD_REGISTER_P (operand_reg[i]) > + && REG_USERVAR_P (operand_reg[i]) > + && operand_reg[j] != NULL_RTX > + && HARD_REGISTER_P (operand_reg[j]) > + && REG_USERVAR_P (operand_reg[j])) > + fatal_insn ("unable to generate reloads for " > + "impossible constraints:", curr_insn); > > ...which I believe is correct. Yes, that is correct. Was that patch ever committed? Should this PR be open at all then? The REG_USER_VAR_P things aren't necessary really, if RA decides to do this it is just as wrong, but it will not decide to do this anyway. > As you said, operand 4 cannot use the same > register as the early clobber output operand 0, and this hunk is catching > the illegal usage. That is a good thing. Yup. Xi, please open your own PR for the loongarch problem? I'll close this one (as fixed) asap.