Question about vec_extract
Andrew Pinski
pinskia@gmail.com
Thu Jul 13 01:03:00 GMT 2006
> 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
More information about the Gcc
mailing list