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