1 /* { dg-require-effective-target vect_simd_clones } */
2 /* { dg-additional-options "-fopenmp-simd" } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
11 int array
[N
] __attribute__((aligned (32)));
13 #pragma omp declare simd simdlen(4) notinbranch aligned(a:16) uniform(a) linear(b)
14 #pragma omp declare simd simdlen(4) notinbranch aligned(a:32) uniform(a) linear(b)
16 #pragma omp declare simd simdlen(2) notinbranch aligned(a:16) uniform(a) linear(b)
17 #pragma omp declare simd simdlen(2) notinbranch aligned(a:32) uniform(a) linear(b)
19 #pragma omp declare simd simdlen(8) notinbranch aligned(a:16) uniform(a) linear(b)
20 #pragma omp declare simd simdlen(8) notinbranch aligned(a:32) uniform(a) linear(b)
22 __attribute__((noinline
)) void
23 foo (int *a
, int b
, int c
)
24 /* { dg-warning {unsupported simdlen 8 \(amdgcn\)} "" { target amdgcn*-*-* } .-1 } */
25 /* { dg-warning {unsupported simdlen 4 \(amdgcn\)} "" { target amdgcn*-*-* } .-2 } */
30 __attribute__((noinline
, noclone
)) void
35 for (i
= 0; i
< N
; ++i
)
36 foo (array
, i
, i
* array
[i
]);
39 __attribute__((noinline
, noclone
)) void
43 for (i
= 0; i
< N
; i
++)
44 array
[i
] = 5 * (i
& 7);
55 for (i
= 0; i
< N
; i
++)
56 if (array
[i
] != 5 * (i
& 7) * i
)