LWG 3035. std::allocator's constructors should be constexpr
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / slp-perm-11.c
blob0318d468ef102cb263d090a33429849221dc3c0d
1 /* { dg-require-effective-target vect_int } */
3 #include "tree-vect.h"
5 int a[64];
6 int b[128];
8 void __attribute__((noinline, noclone))
9 foo (int s)
11 int i;
12 for (i = 0; i < 32; ++i)
14 a[2*i] = b[i*s+1];
15 a[2*i+1] = b[i*s];
19 int main ()
21 int i;
22 check_vect ();
23 for (i = 0; i < 128; ++i)
25 b[i] = i;
26 __asm__ volatile ("");
28 foo (4);
29 for (i = 0; i < 64; ++i)
30 if (a[i] != (4*(i/2) + (i & 1) ^ 1))
31 abort ();
32 return 0;
35 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_perm } } } */