1 /* { dg-require-effective-target vect_simd_clones } */
2 /* { dg-additional-options "-fopenmp-simd" } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
15 #pragma omp declare simd
16 #pragma omp declare simd uniform(b) linear(c:3)
17 __attribute__((noinline
)) short
18 foo (int a
, long long int b
, int c
)
23 __attribute__((noinline
, noclone
)) void
30 for (i
= 0; i
< N
; i
++)
31 c
[i
] = foo (a
[i
], b
[i
], c
[i
]);
36 for (i
= 0; i
< N
; i
++)
37 c
[i
] = foo (a
[i
], x
, i
* 3);
41 __attribute__((noinline
, noclone
)) void
45 for (i
= 0; i
< N
; i
++)
60 for (i
= 0; i
< N
; i
++)
61 if (a
[i
] != 2 * i
|| b
[i
] != 6 - 7 * i
62 || c
[i
] != 6 - 5 * i
+ ((i
& 31) << 4))
67 for (i
= 0; i
< N
; i
++)
68 if (a
[i
] != 6 - 5 * i
+ ((i
& 31) << 4)
70 || c
[i
] != 23 - 2 * i
+ ((i
& 31) << 4))