https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92090
--- Comment #11 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Xiong Hu XS Luo from comment #10) > This could fix the ICE, but I am not sure whether it is reasonable: > > diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c > index 0db6d3151cd..325904ac473 100644 > --- a/gcc/lra-constraints.c > +++ b/gcc/lra-constraints.c > @@ -3886,7 +3886,9 @@ curr_insn_transform (bool check_only_p) > subst = get_equiv_with_elimination (old, curr_insn); > original_subreg_reg_mode[i] = VOIDmode; > equiv_substition_p[i] = false; > - if (subst != old) > + if (subst != old > + && !(GET_MODE (old) == E_PTImode && GET_CODE (old) == REG > + && GET_CODE (subst) == CONST_WIDE_INT)) > { > equiv_substition_p[i] = true; > subst = copy_rtx (subst); Is there a reason we shouldn't allow loading a constant into a PTImode pseudo? I've been working on allowing in the rs6000 patterns.