[LLVMdev] Making GEP into vector illegal?

Chris Lattner clattner at apple.com
Tue Oct 14 17:41:25 PDT 2008


On Oct 14, 2008, at 4:30 PM, Mike Stump wrote:

> On Oct 14, 2008, at 1:54 PM, Eli Friedman wrote:
>> Maybe... although note that with gcc vector intrinsics, this violates
>> strict aliasing.  gcc does allow you to use a slightly more elaborate
>> workaround with a union, though.
>
> Hum what's your take on this then:
>
> /* The Intel API is flexible enough that we must allow aliasing with
> other
>    vector types, and their scalar components.  */
> /* APPLE LOCAL 4505813 */
> typedef long long __m64 __attribute__ ((__vector_size__ (8),
> __may_alias__));

This is actually completely different AFAIK, this allows things like:

((float*)&myvec4)[2]

which is exactly what the proposal wants to continue supporting in the  
IR.

-Chris



More information about the llvm-dev mailing list