1/* Generated from ../../../git/cloog/test/./reservoir/mg-rprj3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.39s. */
2extern void hash(int);
3
4/* Useful macros. */
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))
9
10#define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); }
11#define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); }
12#define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); }
13#define S4(i,j,k) { hash(4); hash(i); hash(j); hash(k); }
14#define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); }
15
16void test(int M, int N, int O, int P, int Q, int R)
17{
18  /* Scattering iterators. */
19  int c2, c4, c6;
20  /* Original iterators. */
21  int i, j, k;
22  if ((M >= 4) && (N >= 4)) {
23    for (c2=2;c2<=O-1;c2++) {
24      for (c6=2;c6<=M;c6++) {
25        S1(c2,2,c6) ;
26      }
27      for (c4=3;c4<=N-1;c4++) {
28        for (c6=2;c6<=M;c6++) {
29          j = c4-1 ;
30          S2(c2,c4-1,c6) ;
31        }
32        j = c4-1 ;
33        S4(c2,c4-1,2) ;
34        for (c6=2;c6<=M-2;c6++) {
35          j = c4-1 ;
36          S3(c2,c4-1,c6) ;
37          j = c4-1 ;
38          S5(c2,c4-1,c6) ;
39          j = c4-1 ;
40          k = c6+1 ;
41          S4(c2,c4-1,c6+1) ;
42        }
43        c6 = M-1 ;
44        j = c4-1 ;
45        k = M-1 ;
46        S3(c2,c4-1,M-1) ;
47        j = c4-1 ;
48        k = M-1 ;
49        S5(c2,c4-1,M-1) ;
50        for (c6=2;c6<=M;c6++) {
51          S1(c2,c4,c6) ;
52        }
53      }
54      for (c6=2;c6<=M;c6++) {
55        j = N-1 ;
56        S2(c2,N-1,c6) ;
57      }
58      j = N-1 ;
59      S4(c2,N-1,2) ;
60      for (c6=2;c6<=M-2;c6++) {
61        j = N-1 ;
62        S3(c2,N-1,c6) ;
63        j = N-1 ;
64        S5(c2,N-1,c6) ;
65        j = N-1 ;
66        k = c6+1 ;
67        S4(c2,N-1,c6+1) ;
68      }
69      c6 = M-1 ;
70      j = N-1 ;
71      k = M-1 ;
72      S3(c2,N-1,M-1) ;
73      j = N-1 ;
74      k = M-1 ;
75      S5(c2,N-1,M-1) ;
76    }
77  }
78  if ((M >= 4) && (N == 3)) {
79    for (c2=2;c2<=O-1;c2++) {
80      for (c6=2;c6<=M;c6++) {
81        S1(c2,2,c6) ;
82      }
83      for (c6=2;c6<=M;c6++) {
84        S2(c2,2,c6) ;
85      }
86      S4(c2,2,2) ;
87      for (c6=2;c6<=M-2;c6++) {
88        S3(c2,2,c6) ;
89        S5(c2,2,c6) ;
90        k = c6+1 ;
91        S4(c2,2,c6+1) ;
92      }
93      c6 = M-1 ;
94      k = M-1 ;
95      S3(c2,2,M-1) ;
96      k = M-1 ;
97      S5(c2,2,M-1) ;
98    }
99  }
100  if ((M == 3) && (N == 3)) {
101    for (c2=2;c2<=O-1;c2++) {
102      for (c6=2;c6<=3;c6++) {
103        S1(c2,2,c6) ;
104      }
105      for (c6=2;c6<=3;c6++) {
106        S2(c2,2,c6) ;
107      }
108      S4(c2,2,2) ;
109      S3(c2,2,2) ;
110      S5(c2,2,2) ;
111    }
112  }
113  if ((M == 3) && (N >= 4)) {
114    for (c2=2;c2<=O-1;c2++) {
115      for (c6=2;c6<=3;c6++) {
116        S1(c2,2,c6) ;
117      }
118      for (c4=3;c4<=N-1;c4++) {
119        for (c6=2;c6<=3;c6++) {
120          j = c4-1 ;
121          S2(c2,c4-1,c6) ;
122        }
123        j = c4-1 ;
124        S4(c2,c4-1,2) ;
125        j = c4-1 ;
126        S3(c2,c4-1,2) ;
127        j = c4-1 ;
128        S5(c2,c4-1,2) ;
129        for (c6=2;c6<=3;c6++) {
130          S1(c2,c4,c6) ;
131        }
132      }
133      for (c6=2;c6<=3;c6++) {
134        j = N-1 ;
135        S2(c2,N-1,c6) ;
136      }
137      j = N-1 ;
138      S4(c2,N-1,2) ;
139      j = N-1 ;
140      S3(c2,N-1,2) ;
141      j = N-1 ;
142      S5(c2,N-1,2) ;
143    }
144  }
145  if ((M == 2) && (N >= 4)) {
146    for (c2=2;c2<=O-1;c2++) {
147      S1(c2,2,2) ;
148      for (c4=3;c4<=N-1;c4++) {
149        j = c4-1 ;
150        S2(c2,c4-1,2) ;
151        S1(c2,c4,2) ;
152      }
153      j = N-1 ;
154      S2(c2,N-1,2) ;
155    }
156  }
157  if ((M == 2) && (N == 3)) {
158    for (c2=2;c2<=O-1;c2++) {
159      S1(c2,2,2) ;
160      S2(c2,2,2) ;
161    }
162  }
163}
164