1 /* { dg-require-effective-target vect_simd_clones } */
2 /* { dg-additional-options "-fopenmp-simd" } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
13 #pragma omp declare simd simdlen(4) notinbranch
14 #pragma omp declare simd simdlen(4) notinbranch uniform(b) linear(c:3)
16 #pragma omp declare simd simdlen(2) notinbranch
17 #pragma omp declare simd simdlen(2) notinbranch uniform(b) linear(c:3)
19 #pragma omp declare simd simdlen(8) notinbranch
20 #pragma omp declare simd simdlen(8) notinbranch uniform(b) linear(c:3)
22 __attribute__((noinline
)) int
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 } */
32 __attribute__((noinline
, noclone
)) void
37 for (i
= 0; i
< N
; ++i
)
38 array
[i
] = foo (i
, 123, i
* 3);
41 __attribute__((noinline
, noclone
)) void
46 for (i
= 0; i
< N
; ++i
)
47 array
[i
] = foo (i
, array
[i
], i
* 3);
57 for (i
= 0; i
< N
; i
++)
58 if (array
[i
] != (i
< 30 ? 5 : i
* 4 + 123))
62 for (i
= 0; i
< N
; i
++)
63 if (array
[i
] != (i
< 30 ? 5 : i
* 8 + 123))