Added howto file for a new CLooG release
[cloog.git] / test / vasilache.good.c
blobf12f3faffd169e142feb6562c86357fe38ff708d
1 /* Generated from ../../../git/cloog/test/vasilache.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.15s. */
2 extern void hash(int);
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))
10 #define S1() { hash(1); }
11 #define S2() { hash(2); }
12 #define S3() { hash(3); }
13 #define S4(i,j) { hash(4); hash(i); hash(j); }
14 #define S5(i,j) { hash(5); hash(i); hash(j); }
15 #define S6(i,j,k,l) { hash(6); hash(i); hash(j); hash(k); hash(l); }
16 #define S7(i,j,k,l) { hash(7); hash(i); hash(j); hash(k); hash(l); }
17 #define S8() { hash(8); }
19 void test(int M, int N)
21 /* Scattering iterators. */
22 int p1, p3, p5, p7;
23 /* Original iterators. */
24 int i, j, k, l;
25 S1() ;
26 S2() ;
27 for (p1=0;p1<=N-1;p1++) {
28 for (p3=0;p3<=N-1;p3++) {
29 S4(p1,p3) ;
30 S5(p1,p3) ;
33 for (p1=0;p1<=N-1;p1++) {
34 for (p3=0;p3<=N-1;p3++) {
35 for (p5=0;p5<=floord(N-1,32);p5++) {
36 if (p5 >= 0) {
37 p7 = 32*p5 ;
38 l = 32*p5 ;
39 S7(p1,p3,p5,32*p5) ;
41 if (p5 <= -1) {
42 S7(p1,p3,p5,0) ;
44 for (p7=max(32*p5+1,1);p7<=min(N-1,32*p5+31);p7++) {
45 l = p7-1 ;
46 S6(p1,p3,p5,p7-1) ;
47 S7(p1,p3,p5,p7) ;
49 if (p5 >= ceild(N-32,32)) {
50 l = N-1 ;
51 S6(p1,p3,p5,N-1) ;
53 if (p5 <= floord(N-33,32)) {
54 p7 = 32*p5+32 ;
55 l = 32*p5+31 ;
56 S6(p1,p3,p5,32*p5+31) ;
61 S8() ;