[PATCH][rtlanal.c][BE][1/2] Fix vector load/stores to not use ld1/st1

Eric Botcazou ebotcazou@adacore.com
Tue Jan 13 19:04:00 GMT 2015


> Sorry for the slow response.  Jeff has approved the patch in the
> meantime, but I didn't want to go ahead and apply it while there
> was still disagreement...

I still think that it isn't appropriate to short-circuit the main computation 
as the patch does, but I don't want to block it after Jeff's approval.

> (1) we have a non-paradoxical subreg;
> (2) both (reg:ymode xregno) and (reg:xmode xregno) occupy full
>     hard registers (no padding or unused upper bits);
> (3) (reg:ymode xregno) and (reg:xmode xregno) store the same number
>     of bytes (X) in each constituent hard register;
> (4) the offset is a multiple of X, i.e. the data we're accessing
>     is aligned to a register boundary; and
> (5) endianness is regular (no differences between words and bytes,
>     or between registers and memory)

OK, that's a nice translation of the new code. :-)

It seems to me that the patch wants to extend the support of generic subregs 
to modes whose sizes are not multiple of each other, which is a requirement of 
the existing code, but does that in a very specific case for the sake of the 
ARM port without saying where all the above restrictions come from.

-- 
Eric Botcazou



More information about the Gcc-patches mailing list