xref: /netbsd-src/external/mit/isl/dist/test_inputs/codegen/cloog/vivien.c (revision 5971e316fdea024efff6be8f03536623db06833e)
1*5971e316Smrg for (int c0 = -27 * n + 2; c0 <= 1; c0 += 1)
2*5971e316Smrg   S1(c0 - 1);
3*5971e316Smrg for (int c0 = 2; c0 <= min(2 * n, n + 29); c0 += 1) {
4*5971e316Smrg   if (c0 >= 3) {
5*5971e316Smrg     if (2 * n >= c0 + 1) {
6*5971e316Smrg       S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
7*5971e316Smrg       if (c0 + 2 >= 2 * n) {
8*5971e316Smrg         for (int c2 = 1; c2 < -n + c0; c2 += 1)
9*5971e316Smrg           S5(-n + c0, n, c2);
10*5971e316Smrg       } else if (c0 >= 5) {
11*5971e316Smrg         S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
12*5971e316Smrg         for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1)
13*5971e316Smrg           S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
14*5971e316Smrg       }
15*5971e316Smrg     }
16*5971e316Smrg     for (int c1 = -c0 + c0 / 2 + 3; c1 <= min(-1, n - c0); c1 += 1) {
17*5971e316Smrg       S4(-c1, c0 + c1);
18*5971e316Smrg       S6(-c1 + 2, c0 + c1 - 2);
19*5971e316Smrg       for (int c2 = 1; c2 <= -c1; c2 += 1)
20*5971e316Smrg         S5(-c1 + 1, c0 + c1 - 1, c2);
21*5971e316Smrg     }
22*5971e316Smrg     if (2 * n >= c0 + 3 && c0 >= n + 2) {
23*5971e316Smrg       S6(-n + c0 + 1, n - 1);
24*5971e316Smrg       for (int c2 = 1; c2 < -n + c0; c2 += 1)
25*5971e316Smrg         S5(-n + c0, n, c2);
26*5971e316Smrg     }
27*5971e316Smrg     if (c0 >= n + 3 && 2 * n >= c0 + 1)
28*5971e316Smrg       S6(-n + c0, n);
29*5971e316Smrg     if (c0 >= n + 3) {
30*5971e316Smrg       S1(c0 - 1);
31*5971e316Smrg     } else {
32*5971e316Smrg       if (n + 1 >= c0 && c0 <= 4) {
33*5971e316Smrg         S1(c0 - 1);
34*5971e316Smrg       } else if (c0 >= 5 && n + 1 >= c0) {
35*5971e316Smrg         S1(c0 - 1);
36*5971e316Smrg         S6(2, c0 - 2);
37*5971e316Smrg       }
38*5971e316Smrg       if (n + 1 >= c0) {
39*5971e316Smrg         S6(1, c0 - 1);
40*5971e316Smrg       } else if (n >= 3) {
41*5971e316Smrg         S1(n + 1);
42*5971e316Smrg         S6(2, n);
43*5971e316Smrg       }
44*5971e316Smrg     }
45*5971e316Smrg     if (n == 2 && c0 == 4)
46*5971e316Smrg       S1(3);
47*5971e316Smrg   } else {
48*5971e316Smrg     S1(1);
49*5971e316Smrg   }
50*5971e316Smrg   if (c0 % 2 == 0)
51*5971e316Smrg     S3(c0 / 2);
52*5971e316Smrg   for (int c1 = max(1, -n + c0); c1 < (c0 + 1) / 2; c1 += 1)
53*5971e316Smrg     S2(c0 - c1, c1);
54*5971e316Smrg }
55*5971e316Smrg for (int c0 = max(2 * n + 1, -27 * n + 2); c0 <= n + 29; c0 += 1)
56*5971e316Smrg   S1(c0 - 1);
57*5971e316Smrg for (int c0 = n + 30; c0 <= 2 * n; c0 += 1) {
58*5971e316Smrg   if (2 * n >= c0 + 1) {
59*5971e316Smrg     S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
60*5971e316Smrg     if (c0 + 2 >= 2 * n) {
61*5971e316Smrg       for (int c2 = 1; c2 < -n + c0; c2 += 1)
62*5971e316Smrg         S5(-n + c0, n, c2);
63*5971e316Smrg     } else {
64*5971e316Smrg       S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
65*5971e316Smrg       for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1)
66*5971e316Smrg         S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
67*5971e316Smrg     }
68*5971e316Smrg     for (int c1 = -c0 + c0 / 2 + 3; c1 <= n - c0; c1 += 1) {
69*5971e316Smrg       S4(-c1, c0 + c1);
70*5971e316Smrg       S6(-c1 + 2, c0 + c1 - 2);
71*5971e316Smrg       for (int c2 = 1; c2 <= -c1; c2 += 1)
72*5971e316Smrg         S5(-c1 + 1, c0 + c1 - 1, c2);
73*5971e316Smrg     }
74*5971e316Smrg     if (2 * n >= c0 + 3) {
75*5971e316Smrg       S6(-n + c0 + 1, n - 1);
76*5971e316Smrg       for (int c2 = 1; c2 < -n + c0; c2 += 1)
77*5971e316Smrg         S5(-n + c0, n, c2);
78*5971e316Smrg     }
79*5971e316Smrg     S6(-n + c0, n);
80*5971e316Smrg   }
81*5971e316Smrg   if (c0 % 2 == 0)
82*5971e316Smrg     S3(c0 / 2);
83*5971e316Smrg   for (int c1 = -n + c0; c1 < (c0 + 1) / 2; c1 += 1)
84*5971e316Smrg     S2(c0 - c1, c1);
85*5971e316Smrg }
86