| typedef unsigned char V8 __attribute__ ((vector_size (32))); |
| typedef unsigned int V32 __attribute__ ((vector_size (32))); |
| typedef unsigned long long V64 __attribute__ ((vector_size (32))); |
| |
| static V32 __attribute__ ((noinline, noclone)) |
| foo (V64 x) |
| { |
| V64 y = (V64)(V8){((V8)(V64){65535, x[0]})[1]}; |
| return (V32){y[0], 255}; |
| } |
| |
| int main () |
| { |
| V32 x = foo ((V64){}); |
| // __builtin_printf ("%08x %08x %08x %08x %08x %08x %08x %08x\n", x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7]); |
| if (x[1] != 255) |
| __builtin_abort(); |
| return 0; |
| } |
| |