diff options
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/pr70903.c')
-rw-r--r-- | SingleSource/Regression/C/gcc-c-torture/execute/pr70903.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/pr70903.c b/SingleSource/Regression/C/gcc-c-torture/execute/pr70903.c new file mode 100644 index 00000000..698a713b --- /dev/null +++ b/SingleSource/Regression/C/gcc-c-torture/execute/pr70903.c @@ -0,0 +1,19 @@ +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; +} |