1 /* { dg-require-effective-target size32plus } */
2 /* { dg-additional-options "-fopenmp-simd" } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
4 /* { dg-final { scan-tree-dump-times "vectorized \[1-3] loops" 2 "vect" { target i?86-*-* x86_64-*-* } } } */
10 int r
, a
[1024], b
[1024];
12 __attribute__((noipa
)) void
15 #pragma omp simd reduction (inscan, +:r)
16 for (int i
= 0; i
< 1024; i
++)
19 #pragma omp scan exclusive(r)
24 __attribute__((noipa
)) int
28 #pragma omp simd reduction (inscan, +:s)
29 for (int i
= 0; i
< 1024; i
++)
32 #pragma omp scan exclusive(s)
38 __attribute__((noipa
)) void
41 #pragma omp simd reduction (inscan, +:r) if (simd: 0)
42 for (int i
= 0; i
< 1024; i
++)
45 #pragma omp scan exclusive(r)
50 __attribute__((noipa
)) int
54 #pragma omp simd reduction (inscan, +:s) simdlen (1)
55 for (int i
= 0; i
< 1024; i
++)
58 #pragma omp scan exclusive(s)
71 for (int i
= 0; i
< 1024; ++i
)
78 if (r
!= 1024 * 1023 / 2)
81 for (int i
= 0; i
< 1024; ++i
)
89 if (bar () != 1024 * 1023)
93 for (int i
= 0; i
< 1024; ++i
)
103 if (r
!= 1024 * 1023 / 2)
107 for (int i
= 0; i
< 1024; ++i
)
115 if (qux () != 1024 * 1023)
119 for (int i
= 0; i
< 1024; ++i
)