1 /* { dg-require-effective-target vect_simd_clones } */
2 /* { dg-additional-options "-fopenmp-simd" } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
11 int a
[N
] __attribute__((aligned (32)));
13 #pragma omp declare simd linear(a) linear(b:3) linear(c:6) notinbranch
14 __attribute__((noinline
)) int
15 foo (int a
, int b
, int c
)
17 return a
^ (b
* 512) ^ (c
* 512 * 512);
20 __attribute__((noinline
, noclone
)) void
24 for (i
= 0, j
= 0, k
= 0; i
< N
/ 2; i
++, j
++, k
+= 3)
25 d
[i
] = foo (j
, i
* 3, 2 * k
+ 2);
29 __attribute__((noinline
, noclone
)) void
33 for (i
= 0, j
= 0, k
= 0; i
< N
/ 2;
34 i
= (int) i
+ 1, j
= (int) j
+ 1, k
= (int) k
+ 3)
35 d
[i
] = foo (j
, i
* 3, 2 * k
+ 2);
44 if (sizeof (int) * __CHAR_BIT__
< 32)
47 for (i
= 0; i
< N
/ 2; i
++)
48 if (a
[i
+ 7] != (i
^ (i
* 3 * 512) ^ (((i
* 6) + 2) * 512 * 512)))
51 for (i
= 0; i
< N
/ 2; i
++)
52 if (a
[i
] != (i
^ (i
* 3 * 512) ^ (((i
* 6) + 2) * 512 * 512)))
56 for (i
= 0; i
< N
/ 2; i
++)
57 if (a
[i
+ 7] != (i
^ (i
* 3 * 512) ^ (((i
* 6) + 2) * 512 * 512)))
60 for (i
= 0; i
< N
/ 2; i
++)
61 if (a
[i
] != (i
^ (i
* 3 * 512) ^ (((i
* 6) + 2) * 512 * 512)))