/* { 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" } } */