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.