1 /* Exercise nested function decomposition, gcc/tree-nested.c. */
6 int p1
= 2, p2
= 6, p3
= 0, p4
= 4, p5
= 13, p6
= 18, p7
= 1, p8
= 1, p9
= 1;
13 __builtin_memset (a
, '\0', sizeof (a
));
16 #pragma acc loop collapse(3)
17 for (i
= 1; i
<= 3; i
++)
18 for (j
= 1; j
<= 3; j
++)
19 for (k
= 2; k
<= 3; k
++)
22 for (i
= 1; i
<= 3; i
++)
23 for (j
= 1; j
<= 3; j
++)
24 for (k
= 2; k
<= 3; k
++)
29 void test2 (int v1
, int v2
, int v3
, int v4
, int v5
, int v6
)
31 int i
, j
, k
, l
= 0, r
= 0;
35 __builtin_memset (a
, '\0', sizeof (a
));
36 __builtin_memset (b
, '\0', sizeof (b
));
38 #pragma acc parallel reduction (||:l)
39 #pragma acc loop reduction (||:l) collapse(3)
40 for (i
= v1
; i
<= v2
; i
++)
41 for (j
= v3
; j
<= v4
; j
++)
42 for (k
= v5
; k
<= v6
; k
++)
44 l
= l
|| i
< 2 || i
> 6 || j
< 0 || j
> 4 || k
< 13 || k
> 18;
49 for (i
= v1
; i
<= v2
; i
++)
50 for (j
= v3
; j
<= v4
; j
++)
51 for (k
= v5
; k
<= v6
; k
++)
53 r
= r
|| i
< 2 || i
> 6 || j
< 0 || j
> 4 || k
< 13 || k
> 18;
61 for (i
= v1
; i
<= v2
; i
++)
62 for (j
= v3
; j
<= v4
; j
++)
63 for (k
= v5
; k
<= v6
; k
++)
64 if (b
[i
][j
][k
] != a
[i
][j
][k
])
68 void test3 (int v1
, int v2
, int v3
, int v4
, int v5
, int v6
, int v7
, int v8
,
71 int i
, j
, k
, l
= 0, r
= 0;
75 __builtin_memset (a
, '\0', sizeof (a
));
76 __builtin_memset (b
, '\0', sizeof (b
));
78 #pragma acc parallel reduction (||:l)
79 #pragma acc loop reduction (||:l) collapse(3)
80 for (i
= v1
; i
<= v2
; i
+= v7
)
81 for (j
= v3
; j
<= v4
; j
+= v8
)
82 for (k
= v5
; k
<= v6
; k
+= v9
)
84 l
= l
|| i
< 2 || i
> 6 || j
< 0 || j
> 4 || k
< 13 || k
> 18;
89 for (i
= v1
; i
<= v2
; i
+= v7
)
90 for (j
= v3
; j
<= v4
; j
+= v8
)
91 for (k
= v5
; k
<= v6
; k
+= v9
)
93 r
= r
|| i
< 2 || i
> 6 || j
< 0 || j
> 4 || k
< 13 || k
> 18;
101 for (i
= v1
; i
<= v2
; i
++)
102 for (j
= v3
; j
<= v4
; j
++)
103 for (k
= v5
; k
<= v6
; k
++)
104 if (b
[i
][j
][k
] != a
[i
][j
][k
])
110 int i
, j
, k
, l
= 0, r
= 0;
113 int v1
= p1
, v2
= p2
, v3
= p3
, v4
= p4
, v5
= p5
, v6
= p6
, v7
= p7
, v8
= p8
,
116 __builtin_memset (a
, '\0', sizeof (a
));
117 __builtin_memset (b
, '\0', sizeof (b
));
119 #pragma acc parallel reduction (||:l)
120 #pragma acc loop reduction (||:l) collapse(3)
121 for (i
= v1
; i
<= v2
; i
+= v7
)
122 for (j
= v3
; j
<= v4
; j
+= v8
)
123 for (k
= v5
; k
<= v6
; k
+= v9
)
125 l
= l
|| i
< 2 || i
> 6 || j
< 0 || j
> 4 || k
< 13 || k
> 18;
130 for (i
= v1
; i
<= v2
; i
+= v7
)
131 for (j
= v3
; j
<= v4
; j
+= v8
)
132 for (k
= v5
; k
<= v6
; k
+= v9
)
134 r
= r
|| i
< 2 || i
> 6 || j
< 0 || j
> 4 || k
< 13 || k
> 18;
142 for (i
= v1
; i
<= v2
; i
++)
143 for (j
= v3
; j
<= v4
; j
++)
144 for (k
= v5
; k
<= v6
; k
++)
145 if (b
[i
][j
][k
] != a
[i
][j
][k
])
150 test2 (p1
, p2
, p3
, p4
, p5
, p6
);
151 test3 (p1
, p2
, p3
, p4
, p5
, p6
, p7
, p8
, p9
);