https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97252

--- Comment #2 from Alex Coplan <acoplan at gcc dot gnu.org> ---
> Unless I'm missing something, I don't think "Uxi" is a valid constraint.
> Perhaps the "Ux" constraint was intended instead?

D'oh, this is of course the union of the Ux (MVE-specific) constraint and the
"i" (general) constraint.

It seems that the problem is that we need the const_vector to get
force_const_mem'd into the constant pool, but the usual approach on AArch32
(without -mpure-code) seems to be to keep these constants around until the
arm_reorg pass runs where they then get brought into a local literal pool. Of
course, with -mpure-code, the literal pool is disabled, so we don't make this
transformation.

Looking at the same testcase on AArch64, we seem to force the const_vector out
to the constant pool in LRA instead.

Not sure what the right approach is for AArch32 here.

Reply via email to