This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question about vec_extract
That said, I'm not happy with a builtin function. I think that we
should make every effort to make
union { TYPE a[COUNT]; VECTOR v; } u;
u.v = v;
x = u.a[0];
use vec_extract, because in the absence of operator[] that is the
natural way for people to extract an element from a vector.
Ok, I am going to extend SRA (or maybe a new pass, I don't know yet)
to produce BIT_FIELD_REF which in turns calls vec_extract patterns.
The other natural way is
((TYPE *)&v)[0]
which is technically an aliasing violation but one which gcc
explicitly accepts (search for VECTOR_TYPE in get_alias_set).
Although, since it is not documented, people should probably be
discouraged from doing this.
This currently actually does not produce vec_extract though it might be easy
to extend fold to produce BIT_FIELD_REF for this case.
Thanks,
Andrew Pinski