1 /* { dg-do run } */
2
3 #include <string.h>
4 #include <stdlib.h>
5
6 int
7 main (void)
8 {
9 int i, j, k, l = 0;
10 int a[3][3][3];
11
12 memset (a, '\0', sizeof (a));
13 #pragma acc parallel
14 #pragma acc loop collapse(4 - 1)
15 for (i = 0; i < 2; i++)
16 for (j = 0; j < 2; j++)
17 for (k = 0; k < 2; k++)
18 a[i][j][k] = i + j * 4 + k * 16;
19 #pragma acc parallel
20 {
21 #pragma acc loop collapse(2) reduction(|:l)
22 for (i = 0; i < 2; i++)
23 for (j = 0; j < 2; j++)
24 for (k = 0; k < 2; k++)
25 if (a[i][j][k] != i + j * 4 + k * 16)
26 l = 1;
27 }
28 if (l)
29 abort ();
30 return 0;
31 }