1 /* Generated from ../../../git/cloog/test/otl.cloog by CLooG 0.14.0-273-gfe7416f gmp bits in 0.24s. */
5 #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d))
6 #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d))
7 #define max(x,y) ((x) > (y) ? (x) : (y))
8 #define min(x,y) ((x) < (y) ? (x) : (y))
10 #define S1(outerTimeTileIter,outerProcTileIter1,outerProcTileIter2,innerTimeTileIter,innerProcTileIter1,innerProcTileIter2) { hash(1); hash(outerTimeTileIter); hash(outerProcTileIter1); hash(outerProcTileIter2); hash(innerTimeTileIter); hash(innerProcTileIter1); hash(innerProcTileIter2); }
12 void test(int M
, int N
)
14 /* Scattering iterators. */
15 int outerTimeTileScatter
, outerProcTileScatter1
, outerProcTileScatter2
, innerTimeTileScatter
, innerProcTileScatter1
, innerProcTileScatter2
;
16 /* Original iterators. */
17 int outerTimeTileIter
, outerProcTileIter1
, outerProcTileIter2
, innerTimeTileIter
, innerProcTileIter1
, innerProcTileIter2
;
18 if ((M
>= 3) && (N
>= 4)) {
19 for (outerTimeTileScatter
=1;outerTimeTileScatter
<=floord(2*M
+2*N
-7,5);outerTimeTileScatter
++) {
20 for (outerProcTileScatter1
=max(ceild(outerTimeTileScatter
,2),ceild(5*outerTimeTileScatter
-M
-2,5));outerProcTileScatter1
<=min(min(floord(M
+2*N
-5,5),floord(5*outerTimeTileScatter
+2*N
+1,10)),outerTimeTileScatter
);outerProcTileScatter1
++) {
21 for (outerProcTileScatter2
=max(max(max(max(max(ceild(outerTimeTileScatter
-outerProcTileScatter1
-1,2),ceild(5*outerProcTileScatter1
-N
-1,5)),ceild(5*outerTimeTileScatter
-M
-N
+1,5)),ceild(5*outerTimeTileScatter
-N
-2,10)),ceild(5*outerTimeTileScatter
-N
-3,15)),outerTimeTileScatter
-outerProcTileScatter1
-1);outerProcTileScatter2
<=min(min(min(floord(M
+N
-2,5),floord(5*outerTimeTileScatter
-5*outerProcTileScatter1
+N
+4,5)),floord(5*outerTimeTileScatter
+N
+3,10)),outerProcTileScatter1
);outerProcTileScatter2
++) {
22 for (innerTimeTileScatter
=max(max(max(ceild(10*outerProcTileScatter1
-2*N
,5),ceild(10*outerProcTileScatter2
-N
-2,5)),ceild(5*outerProcTileScatter1
+5*outerProcTileScatter2
-N
-3,5)),outerTimeTileScatter
);innerTimeTileScatter
<=min(min(min(min(min(floord(2*M
+2*N
-6,5),floord(5*outerProcTileScatter1
+M
+3,5)),floord(5*outerProcTileScatter2
+M
+N
,5)),floord(10*outerProcTileScatter2
+N
+3,5)),outerTimeTileScatter
+1),outerProcTileScatter1
+outerProcTileScatter2
+1);innerTimeTileScatter
++) {
23 for (innerProcTileScatter1
=max(max(max(max(ceild(innerTimeTileScatter
,2),ceild(5*innerTimeTileScatter
-M
-2,5)),ceild(5*outerTimeTileScatter
-M
-1,5)),outerProcTileScatter1
),outerTimeTileScatter
-outerProcTileScatter2
);innerProcTileScatter1
<=min(min(min(min(min(min(min(floord(M
+2*N
-4,5),floord(5*outerProcTileScatter2
+N
+2,5)),floord(-5*outerProcTileScatter2
+5*innerTimeTileScatter
+N
+4,5)),floord(5*outerTimeTileScatter
-5*outerProcTileScatter2
+N
+5,5)),floord(5*innerTimeTileScatter
+2*N
+2,10)),floord(5*outerTimeTileScatter
+2*N
+3,10)),outerTimeTileScatter
),outerProcTileScatter1
+1);innerProcTileScatter1
++) {
24 for (innerProcTileScatter2
=outerProcTileScatter2
;innerProcTileScatter2
<=outerProcTileScatter2
;innerProcTileScatter2
++) {
25 for (outerTimeTileIter
=outerTimeTileScatter
;outerTimeTileIter
<=outerTimeTileScatter
;outerTimeTileIter
++) {
26 for (outerProcTileIter1
=outerProcTileScatter1
;outerProcTileIter1
<=outerProcTileScatter1
;outerProcTileIter1
++) {
27 for (outerProcTileIter2
=outerProcTileScatter2
;outerProcTileIter2
<=outerProcTileScatter2
;outerProcTileIter2
++) {
28 for (innerTimeTileIter
=innerTimeTileScatter
;innerTimeTileIter
<=innerTimeTileScatter
;innerTimeTileIter
++) {
29 for (innerProcTileIter1
=innerProcTileScatter1
;innerProcTileIter1
<=innerProcTileScatter1
;innerProcTileIter1
++) {
30 for (innerProcTileIter2
=outerProcTileScatter2
;innerProcTileIter2
<=outerProcTileScatter2
;innerProcTileIter2
++) {
31 S1(outerTimeTileIter
,outerProcTileIter1
,outerProcTileIter2
,innerTimeTileIter
,innerProcTileIter1
,innerProcTileIter2
);