3 /* { dg-additional-options "-msse2" { target sse2_runtime } } */
4 /* { dg-additional-options "-mavx" { target avx_runtime } } */
7 int a
[1024] __attribute__((aligned (32))) = { 1 };
9 #pragma omp declare reduction (+:struct S:omp_out.s += omp_in.s)
10 #pragma omp declare reduction (foo:struct S:omp_out.s += omp_in.s)
11 #pragma omp declare reduction (foo:int:omp_out += omp_in)
13 __attribute__((noinline
, noclone
)) int
19 #pragma omp parallel for simd aligned(a : 32) reduction(+:s) \
21 for (i
= 0; i
< 1024; i
++)
28 if (t
.s
!= s
.s
|| u
!= s
.s
)
37 for (i
= 0; i
< 1024; i
++)
38 a
[i
] = (i
& 31) + (i
/ 128);