[Bug target/98519] rs6000: @pcrel unsupported on this instruction error in pveclib
segher at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Oct 3 21:07:55 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98519
--- Comment #28 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(In reply to Peter Bergner from comment #27)
> (In reply to Michael Meissner from comment #23)
> > If we change rs6000_legitimate_address_p to return false if we have a
> > prefixed address and we are in asm, we get an insn not found error:
> >
> > --- /home/meissner/tmp/gcc-tmp/TskwFJ_rs6000.c 2021-02-16
> > 11:44:05.520201674 -0500
> > +++ gcc/config/rs6000/rs6000.c 2021-02-16 11:41:41.444740394 -0500
> > @@ -9532,7 +9532,7 @@ rs6000_legitimate_address_p (machine_mod
> >
> > /* Handle prefixed addresses (PC-relative or 34-bit offset). */
> > if (address_is_prefixed (x, mode, NON_PREFIXED_DEFAULT))
> > - return 1;
> > + return !recog_data.is_asm;
> >
> > /* Handle restricted vector d-form offsets in ISA 3.0. */
> > if (quad_offset_p)
>
> I don't think this change is correct as is, since pcrel addresses could be
> legitimate in asm
All prefixed addresses, pcrel or R=0, are valid always. The original code
is correct.
But lxsd cannot use "m" as constraint anyway. It needs "wY", and that will
work fine here?
More information about the Gcc-bugs
mailing list