1 /* { dg-do run } */
2 /* { dg-additional-options "-msse2" { target sse2_runtime } } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
4 
5 int s = 0, i, j, u;
6 
7 void
foo()8 foo ()
9 {
10   #pragma omp for simd schedule(static, 32) reduction(+:s) lastprivate(u) collapse(2)
11   for (i = 0; i < 16; i++)
12     for (j = 0; j < 16; j++)
13       {
14 	s++;
15 	u = i + j;
16       }
17   if (i != 16 || j != 16 || s != 256 || u != 30)
18     __builtin_abort ();
19 }
20 
21 int
main()22 main ()
23 {
24   foo ();
25   return 0;
26 }
27