1 /* { dg-do run } */
2
3 #include <stdlib.h>
4
5 int
6 main (void)
7 {
8 int i, j, k, l = 0, f = 0, x = 0, l2 = 0;
9 int m1 = 4, m2 = -5, m3 = 17;
10
11 #pragma acc parallel
12 #pragma acc loop seq collapse(3) reduction(+:l)
13 for (i = -2; i < m1; i++)
14 for (j = m2; j < -2; j++)
15 {
16 for (k = 13; k < m3; k++)
17 {
18 if ((i + 2) * 12 + (j + 5) * 4 + (k - 13) != 9 + f++)
19 l++;
20 }
21 }
22
23 /* Test loop with > condition. */
24 #pragma acc parallel
25 #pragma acc loop seq collapse(3) reduction(+:l2)
26 for (i = -2; i < m1; i++)
27 for (j = -3; j > (m2 - 1); j--)
28 {
29 for (k = 13; k < m3; k++)
30 {
31 if ((i + 2) * 12 + (j + 5) * 4 + (k - 13) != 9 + f++)
32 l2++;
33 }
34 }
35
36 for (i = -2; i < m1; i++)
37 for (j = m2; j < -2; j++)
38 {
39 for (k = 13; k < m3; k++)
40 {
41 if ((i + 2) * 12 + (j + 5) * 4 + (k - 13) != 9 + f++)
42 x++;
43 }
44 }
45
46 if (l != x || l2 != x)
47 abort ();
48
49 return 0;
50 }