/* { dg-do compile } */ | |
/* { dg-options "-O2 -fdump-tree-optimized -w -Wno-psabi" } */ | |
#define foobar(n) \ | |
typedef int v##n##si __attribute__ ((vector_size (4 * n))); \ | |
\ | |
int \ | |
foo##n(int x, v##n##si v) \ | |
{ \ | |
v[0] ^= v[1]; \ | |
return ((v##n##si)v)[x]; \ | |
} \ | |
\ | |
int \ | |
bar##n(int x, v##n##si v) \ | |
{ \ | |
v[0] ^= v[1]; \ | |
return v[x]; \ | |
} | |
foobar(2) | |
foobar(4) | |
foobar(8) | |
foobar(16) | |
foobar(32) | |
foobar(64) | |
/* Verify we don't have any vector temporaries in the IL. */ | |
/* { dg-final { scan-tree-dump-not "vector" "optimized" } } */ |