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?