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.

Reply via email to