diff options
Diffstat (limited to 'polly/lib/External/isl/test_inputs/codegen/cloog')
279 files changed, 2527 insertions, 0 deletions
diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/0D-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-1.c new file mode 100644 index 00000000000..7f22e2e417e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-1.c @@ -0,0 +1 @@ +S1(); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/0D-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-1.in new file mode 100644 index 00000000000..10e3e408a6d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-1.in @@ -0,0 +1,3 @@ +{ S1[] -> [0] } +{ : } +{ [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/0D-2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-2.c new file mode 100644 index 00000000000..b87b57eacfb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-2.c @@ -0,0 +1,2 @@ +if (M >= 0) + S1(); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/0D-2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-2.in new file mode 100644 index 00000000000..3bbfd35cc2b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-2.in @@ -0,0 +1,3 @@ +[M] -> { S1[] -> [0] : M >= 0 } +[M] -> { : } +[M] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/0D-3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-3.c new file mode 100644 index 00000000000..7f22e2e417e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-3.c @@ -0,0 +1 @@ +S1(); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/0D-3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-3.in new file mode 100644 index 00000000000..f99dd344e46 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/0D-3.in @@ -0,0 +1,3 @@ +[M] -> { S1[] -> [0] : M >= 0 } +[M] -> { : M >= 0 } +[M] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/1point-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-1.c new file mode 100644 index 00000000000..53dd8931e6f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-1.c @@ -0,0 +1 @@ +S1(2 * M, M); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/1point-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-1.in new file mode 100644 index 00000000000..efd0a7ff827 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-1.in @@ -0,0 +1,3 @@ +[M] -> { S1[2M, M] -> [2M, M, 0] } +[M] -> { : } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/1point-2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-2.c new file mode 100644 index 00000000000..0a8cbe37d2f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-2.c @@ -0,0 +1 @@ +S1(2 * M, N + 2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/1point-2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-2.in new file mode 100644 index 00000000000..de5157ceac6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/1point-2.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[2M, 2 + N] -> [2M, 2 + N, 0] } +[M, N] -> { : } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/4-param.c b/polly/lib/External/isl/test_inputs/codegen/cloog/4-param.c new file mode 100644 index 00000000000..56659a06779 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/4-param.c @@ -0,0 +1,14 @@ +{ + for (int c0 = m; c0 <= min(n, p - 1); c0 += 1) + S1(c0); + for (int c0 = p; c0 <= min(m - 1, q); c0 += 1) + S2(c0); + for (int c0 = max(m, p); c0 <= min(n, q); c0 += 1) { + S1(c0); + S2(c0); + } + for (int c0 = max(max(m, p), q + 1); c0 <= n; c0 += 1) + S1(c0); + for (int c0 = max(max(m, n + 1), p); c0 <= q; c0 += 1) + S2(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/4-param.in b/polly/lib/External/isl/test_inputs/codegen/cloog/4-param.in new file mode 100644 index 00000000000..7814076053b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/4-param.in @@ -0,0 +1,3 @@ +[m, n, p, q] -> { S1[i0] -> [i0, 0] : i0 >= m and i0 <= n; S2[i0] -> [i0, 1] : i0 >= p and i0 <= q } +[m, n, p, q] -> { : } +[m, n, p, q] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/README b/polly/lib/External/isl/test_inputs/codegen/cloog/README new file mode 100644 index 00000000000..9250f11e161 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/README @@ -0,0 +1,2 @@ +The tests in this directory have been adapted from the corresponding CLooG +test cases. diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/backtrack.c b/polly/lib/External/isl/test_inputs/codegen/cloog/backtrack.c new file mode 100644 index 00000000000..df0407a437e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/backtrack.c @@ -0,0 +1 @@ +S1(0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/backtrack.in b/polly/lib/External/isl/test_inputs/codegen/cloog/backtrack.in new file mode 100644 index 00000000000..b8ec466f559 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/backtrack.in @@ -0,0 +1,3 @@ +{ S1[0] -> [0, 0] } +{ : } +{ [i, j] -> atomic[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-1.c new file mode 100644 index 00000000000..95eb5f716e3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-1.c @@ -0,0 +1,2 @@ +for (int c0 = 0; c0 <= 2; c0 += 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-1.in new file mode 100644 index 00000000000..e5f8bfafd15 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-1.in @@ -0,0 +1,3 @@ +{ S1[i0] -> [i0, 0] : i0 >= 0 and i0 <= 2 } +{ : } +{ [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-2.c new file mode 100644 index 00000000000..df0407a437e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-2.c @@ -0,0 +1 @@ +S1(0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-2.in new file mode 100644 index 00000000000..7eb48f2da74 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-2.in @@ -0,0 +1,3 @@ +{ S1[0] -> [0, 0] } +{ : } +{ [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-3.c new file mode 100644 index 00000000000..d0dd54bd089 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-3.c @@ -0,0 +1,2 @@ +for (int c0 = 0; c0 <= M; c0 += 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-3.in new file mode 100644 index 00000000000..59ce2c9249b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-3.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0] -> [i0, 0] : i0 >= 0 and i0 <= M } +[M] -> { : M >= 0 } +[M] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-4.c b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-4.c new file mode 100644 index 00000000000..0ebb7ccbb43 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-4.c @@ -0,0 +1,2 @@ +for (int c0 = 0; c0 <= M + 1; c0 += 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-4.in b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-4.in new file mode 100644 index 00000000000..5f79acf698c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-4.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0] -> [i0, 0] : i0 >= 0 and i0 <= 1 + M } +[M] -> { : M >= 0 } +[M] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-5.c b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-5.c new file mode 100644 index 00000000000..09e8c422168 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-5.c @@ -0,0 +1 @@ +S1(1, floord(M + 1, 2)); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-5.in b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-5.in new file mode 100644 index 00000000000..3a6f9085514 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/basic-bounds-5.in @@ -0,0 +1,3 @@ +[M] -> { S1[1, i1] -> [1, i1, 0] : 2i1 >= M and 2i1 <= 1 + M } +[M] -> { : } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/block.c b/polly/lib/External/isl/test_inputs/codegen/cloog/block.c new file mode 100644 index 00000000000..e24ef30ade7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/block.c @@ -0,0 +1,6 @@ +{ + S1(); + S3(0); + S2(); + S3(1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/block.in b/polly/lib/External/isl/test_inputs/codegen/cloog/block.in new file mode 100644 index 00000000000..faf2af5f466 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/block.in @@ -0,0 +1,3 @@ +{ S3[i0] -> [i0, 1] : i0 >= 0 and i0 <= 1; S1[] -> [0, 0]; S2[] -> [1, 0] } +{ : } +{ [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/block2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/block2.c new file mode 100644 index 00000000000..d3fbbd7802a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/block2.c @@ -0,0 +1,5 @@ +for (int c0 = 0; c0 <= 9; c0 += 1) { + S1(c0, 1); + S3(c0, 1); + S2(c0, 1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/block2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/block2.in new file mode 100644 index 00000000000..d2b5db44039 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/block2.in @@ -0,0 +1,3 @@ +{ S1[i0, 1] -> [i0, 1, 6] : i0 >= 0 and i0 <= 9; S2[i0, 1] -> [i0, 1, 11] : i0 >= 0 and i0 <= 9; S3[i0, 1] -> [i0, 1, 8] : i0 >= 0 and i0 <= 9 } +{ : } +{ [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/block3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/block3.c new file mode 100644 index 00000000000..ff4d5539178 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/block3.c @@ -0,0 +1,6 @@ +{ + S1(); + for (int c0 = 0; c0 <= 1; c0 += 1) + S3(c0); + S2(); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/block3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/block3.in new file mode 100644 index 00000000000..39c0abb790d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/block3.in @@ -0,0 +1,3 @@ +{ S2[] -> [1]; S3[i0] -> [i0] : i0 >= 0 and i0 <= 1; S1[] -> [0] } +{ : } +{ [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/byu98-1-2-3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/byu98-1-2-3.c new file mode 100644 index 00000000000..8e87cba33db --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/byu98-1-2-3.c @@ -0,0 +1,18 @@ +{ + for (int c0 = 2; c0 <= 3; c0 += 1) + for (int c1 = -c0 + 6; c1 <= 6; c1 += 1) + S1(c0, c1); + for (int c0 = 4; c0 <= 8; c0 += 1) { + if (c0 >= 6) { + S2(c0, -c0 + 9); + } else { + if (c0 == 4) + for (int c1 = 3; c1 <= 4; c1 += 1) + S1(4, c1); + S1(c0, -c0 + 9); + S2(c0, -c0 + 9); + } + for (int c1 = max(c0 - 1, -c0 + 10); c1 <= 6; c1 += 1) + S1(c0, c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/byu98-1-2-3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/byu98-1-2-3.in new file mode 100644 index 00000000000..9f98fb85990 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/byu98-1-2-3.in @@ -0,0 +1,3 @@ +{ S1[i0, i1] -> [i0, i1, 0] : i1 >= 6 - i0 and i0 >= 2 and i1 >= 3 and i1 <= 6 and i1 >= -1 + i0; S2[i0, 9 - i0] -> [i0, 9 - i0, 1] : i0 <= 8 and i0 >= 4 } +{ : } +{ [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky.c b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky.c new file mode 100644 index 00000000000..20d4e4d0b9e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky.c @@ -0,0 +1,12 @@ +for (int c0 = 1; c0 <= n; c0 += 1) { + S1(c0); + for (int c2 = 1; c2 < c0; c2 += 1) + S2(c0, c2); + S3(c0); + for (int c2 = c0 + 1; c2 <= n; c2 += 1) { + S4(c0, c2); + for (int c4 = 1; c4 < c0; c4 += 1) + S5(c0, c2, c4); + S6(c0, c2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky.in b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky.in new file mode 100644 index 00000000000..90b56c638b3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky.in @@ -0,0 +1,3 @@ +[n] -> { S1[i0] -> [i0, 1, 0, 0, 0, 0] : i0 >= 1 and i0 <= n; S2[i0, i1] -> [i0, 2, i1, 1, 0, 0] : i0 >= 1 and i0 <= n and i1 >= 1 and i1 <= -1 + i0; S6[i0, i1] -> [i0, 4, i1, 3, 0, 0] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n; S3[i0] -> [i0, 3, 0, 0, 0, 0] : i0 >= 1 and i0 <= n; S4[i0, i1] -> [i0, 4, i1, 1, 0, 0] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n; S5[i0, i1, i2] -> [i0, 4, i1, 2, i2, 1] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n and i2 >= 1 and i2 <= -1 + i0 } +[n] -> { : } +[n] -> { [i, j, k, l, m, n'] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky2.c new file mode 100644 index 00000000000..c746460b4fa --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky2.c @@ -0,0 +1,20 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) { + S1(c1); + for (int c2 = c1 + 1; c2 <= M; c2 += 1) + S4(c1, c2); + } + for (int c0 = 1; c0 < 3 * M - 1; c0 += 3) { + S3((c0 + 2) / 3); + if (3 * M >= c0 + 8) { + for (int c1 = (c0 + 5) / 3; c1 <= M; c1 += 1) { + S6((c0 + 2) / 3, c1); + for (int c4 = (c0 + 5) / 3; c4 < c1; c4 += 1) + S5(c4, c1, (c0 + 2) / 3); + } + } else if (c0 + 5 == 3 * M) + S6(M - 1, M); + for (int c1 = (c0 + 5) / 3; c1 <= M; c1 += 1) + S2(c1, (c0 + 2) / 3); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky2.in new file mode 100644 index 00000000000..b44b4568f71 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/cholesky2.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [3i1, i0, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= -1 + i0; S4[i0, i1] -> [0, i0, i1] : i0 >= 1 and i0 <= M and i1 >= 1 + i0 and i1 <= M; S1[i0] -> [0, i0, 0] : i0 >= 1 and i0 <= M; S6[i0, i1] -> [-1 + 3i0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 + i0 and i1 <= M; S3[i0] -> [-2 + 3i0, 0, 0] : i0 >= 1 and i0 <= M; S5[i0, i1, i2] -> [-1 + 3i2, i1, i2] : i0 >= 1 and i0 <= M and i1 >= 1 + i0 and i1 <= M and i2 >= 1 and i2 <= -1 + i0 } +[M] -> { : } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/christian.c b/polly/lib/External/isl/test_inputs/codegen/cloog/christian.c new file mode 100644 index 00000000000..98b52d8d0fe --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/christian.c @@ -0,0 +1,6 @@ +for (int c0 = -N + 1; c0 <= N; c0 += 1) { + for (int c1 = max(0, c0 - 1); c1 < min(N, N + c0 - 1); c1 += 1) + S2(c1, -c0 + c1 + 1); + for (int c1 = max(0, c0); c1 < min(N, N + c0); c1 += 1) + S1(c1, -c0 + c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/christian.in b/polly/lib/External/isl/test_inputs/codegen/cloog/christian.in new file mode 100644 index 00000000000..af3df07967f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/christian.in @@ -0,0 +1,3 @@ +[N] -> { S1[i0, i1] -> [i0 - i1] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <= -1 + N; S2[i0, i1] -> [1 + i0 - i1] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <= -1 + N } +[N] -> { : } +[N] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/classen.c b/polly/lib/External/isl/test_inputs/codegen/cloog/classen.c new file mode 100644 index 00000000000..ad7be335451 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/classen.c @@ -0,0 +1,86 @@ +{ + if (m == 1) { + S1(0, 1, 1, 1); + S8(0, 1); + } else if (m >= 2) { + S1(0, 1, 1, 1); + S3(0, 1, 1, 2, 1, 1, 1, 2); + S4(0, 1, 2, 2, 1, 1, 2, 2); + S2(0, 1, 1, 1, 1, 1, 2, 1); + S8(0, 1); + } + for (int c0 = 1; c0 < 2 * m - 3; c0 += 1) { + if (c0 + 1 == m) { + S5(m - 2, 1, m - 1, 1, m - 1, 1, m, 1); + S1(m - 1, 1, m, 1); + S3(m - 1, 1, m, 2, m, 1, m, 2); + } else if (m >= c0 + 2) { + S5(c0 - 1, 1, c0, 1, c0, 1, c0 + 1, 1); + S1(c0, 1, c0 + 1, 1); + S3(c0, 1, c0 + 1, 2, c0 + 1, 1, c0 + 1, 2); + S4(c0, 1, c0 + 2, 2, c0 + 1, 1, c0 + 2, 2); + S2(c0, 1, c0 + 1, 1, c0 + 1, 1, c0 + 2, 1); + } else { + S5(c0 - 1, -m + c0 + 2, c0, -m + c0 + 2, m - 1, -m + c0 + 2, m, -m + c0 + 2); + S6(c0 - 1, -m + c0 + 1, c0, -m + c0 + 2, m, -m + c0 + 1, m, -m + c0 + 2); + S1(c0, -m + c0 + 2, m, -m + c0 + 2); + S3(c0, -m + c0 + 2, c0 + 1, -m + c0 + 3, m, -m + c0 + 2, m, -m + c0 + 3); + } + for (int c2 = max(2, -m + c0 + 3); c2 <= min(m - 1, c0); c2 += 1) { + S5(c0 - 1, c2, c0, c2, c0 - c2 + 1, c2, c0 - c2 + 2, c2); + S7(c0 - 1, c2 - 1, c0 + 1, c2, c0 - c2 + 2, c2 - 1, c0 - c2 + 3, c2); + S6(c0 - 1, c2 - 1, c0, c2, c0 - c2 + 2, c2 - 1, c0 - c2 + 2, c2); + S1(c0, c2, c0 - c2 + 2, c2); + S3(c0, c2, c0 + 1, c2 + 1, c0 - c2 + 2, c2, c0 - c2 + 2, c2 + 1); + S4(c0, c2, c0 + 2, c2 + 1, c0 - c2 + 2, c2, c0 - c2 + 3, c2 + 1); + S2(c0, c2, c0 + 1, c2, c0 - c2 + 2, c2, c0 - c2 + 3, c2); + } + if (c0 + 1 == m) { + S7(m - 2, m - 1, m, m, 1, m - 1, 2, m); + S6(m - 2, m - 1, m - 1, m, 1, m - 1, 1, m); + S1(m - 1, m, 1, m); + S2(m - 1, m, m, m, 1, m, 2, m); + } else if (c0 >= m) { + S5(c0 - 1, m, c0, m, -m + c0 + 1, m, -m + c0 + 2, m); + S7(c0 - 1, m - 1, c0 + 1, m, -m + c0 + 2, m - 1, -m + c0 + 3, m); + S6(c0 - 1, m - 1, c0, m, -m + c0 + 2, m - 1, -m + c0 + 2, m); + S1(c0, m, -m + c0 + 2, m); + S2(c0, m, c0 + 1, m, -m + c0 + 2, m, -m + c0 + 3, m); + } else { + S7(c0 - 1, c0, c0 + 1, c0 + 1, 1, c0, 2, c0 + 1); + S6(c0 - 1, c0, c0, c0 + 1, 1, c0, 1, c0 + 1); + S1(c0, c0 + 1, 1, c0 + 1); + S3(c0, c0 + 1, c0 + 1, c0 + 2, 1, c0 + 1, 1, c0 + 2); + S4(c0, c0 + 1, c0 + 2, c0 + 2, 1, c0 + 1, 2, c0 + 2); + S2(c0, c0 + 1, c0 + 1, c0 + 1, 1, c0 + 1, 2, c0 + 1); + } + for (int c8 = max(1, -m + c0 + 2); c8 <= min(m, c0 + 1); c8 += 1) + S8(c0, c8); + } + if (m >= 2) { + if (m >= 3) { + S5(2 * m - 4, m - 1, 2 * m - 3, m - 1, m - 1, m - 1, m, m - 1); + S6(2 * m - 4, m - 2, 2 * m - 3, m - 1, m, m - 2, m, m - 1); + S1(2 * m - 3, m - 1, m, m - 1); + S3(2 * m - 3, m - 1, 2 * m - 2, m, m, m - 1, m, m); + S5(2 * m - 4, m, 2 * m - 3, m, m - 2, m, m - 1, m); + S7(2 * m - 4, m - 1, 2 * m - 2, m, m - 1, m - 1, m, m); + S6(2 * m - 4, m - 1, 2 * m - 3, m, m - 1, m - 1, m - 1, m); + S1(2 * m - 3, m, m - 1, m); + } else { + S5(0, 1, 1, 1, 1, 1, 2, 1); + S1(1, 1, 2, 1); + S3(1, 1, 2, 2, 2, 1, 2, 2); + S7(0, 1, 2, 2, 1, 1, 2, 2); + S6(0, 1, 1, 2, 1, 1, 1, 2); + S1(1, 2, 1, 2); + } + S2(2 * m - 3, m, 2 * m - 2, m, m - 1, m, m, m); + for (int c8 = m - 1; c8 <= m; c8 += 1) + S8(2 * m - 3, c8); + S5(2 * m - 3, m, 2 * m - 2, m, m - 1, m, m, m); + S6(2 * m - 3, m - 1, 2 * m - 2, m, m, m - 1, m, m); + S1(2 * m - 2, m, m, m); + S8(2 * m - 2, m); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/classen.in b/polly/lib/External/isl/test_inputs/codegen/cloog/classen.in new file mode 100644 index 00000000000..8dc0b76a505 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/classen.in @@ -0,0 +1,3 @@ +[m] -> { S2[i0, i1, 1 + i0, i1, 2 + i0 - i1, i1, 3 + i0 - i1, i1] -> [i0, 0, i1, 2, 2 + i0 - i1, i1, 1] : m >= 1 and i0 <= -3 + 2m and i0 >= 0 and i1 <= 1 + i0 and i1 <= m and i1 >= 3 - m + i0 and i1 >= 1; S4[i0, i1, 2 + i0, 1 + i1, 2 + i0 - i1, i1, 3 + i0 - i1, 1 + i1] -> [i0, 0, i1, 2, 2 + i0 - i1, i1, 1] : m >= 1 and i0 <= -4 + 2m and i0 >= 0 and i1 <= 1 + i0 and i1 <= -1 + m and i1 >= 3 - m + i0 and i1 >= 1; S5[i0, i1, 1 + i0, i1, 2 + i0 - i1, i1, 3 + i0 - i1, i1] -> [1 + i0, 0, i1, 0, 2 + i0 - i1, i1, 1] : m >= 1 and i0 <= -3 + 2m and i0 >= 0 and i1 <= 1 + i0 and i1 <= m and i1 >= 3 - m + i0 and i1 >= 1; S7[i0, i1, 2 + i0, 1 + i1, 2 + i0 - i1, i1, 3 + i0 - i1, 1 + i1] -> [1 + i0, 0, 1 + i1, 0, 2 + i0 - i1, i1, 1] : m >= 1 and i0 <= -4 + 2m and i0 >= 0 and i1 <= 1 + i0 and i1 <= -1 + m and i1 >= 3 - m + i0 and i1 >= 1; S6[i0, i1, 1 + i0, 1 + i1, 2 + i0 - i1, i1, 2 + i0 - i1, 1 + i1] -> [1 + i0, 0, 1 + i1, 0, 2 + i0 - i1, i1, 1] : m >= 1 and i0 <= -3 + 2m and i0 >= 0 and i1 <= 1 + i0 and i1 <= -1 + m and i1 >= 2 - m + i0 and i1 >= 1; S3[i0, i1, 1 + i0, 1 + i1, 2 + i0 - i1, i1, 2 + i0 - i1, 1 + i1] -> [i0, 0, i1, 2, 2 + i0 - i1, i1, 1] : m >= 1 and i0 <= -3 + 2m and i0 >= 0 and i1 <= 1 + i0 and i1 <= -1 + m and i1 >= 2 - m + i0 and i1 >= 1; S8[i0, i1] -> [i0, 1, 0, 0, 0, 0, 0] : i0 <= -2 + 2m and i0 >= 0 and i1 <= 1 + i0 and i1 <= m and i1 >= 2 - m + i0 and i1 >= 1; S1[i0, i1, 2 + i0 - i1, i1] -> [i0, 0, i1, 1, 0, 0, 0] : m >= 1 and i1 >= 2 - m + i0 and i1 <= 1 + i0 and i1 <= m and i1 >= 1 } +[m] -> { : m >= 0 } +[m] -> { [i, j, k, l, m', n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/classen2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/classen2.c new file mode 100644 index 00000000000..a737d2d4b1a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/classen2.c @@ -0,0 +1,4 @@ +for (int c0 = max(max(max(max(max(max(4, 5 * outerTimeTileScatter), 5 * outerProcTileScatter1), 5 * outerProcTileScatter2 + 1), 5 * outerProcTileScatter1 + 5 * outerProcTileScatter2 - N), 10 * outerProcTileScatter2 - N + 1), 10 * outerProcTileScatter1 - 2 * N + 2); c0 <= min(min(min(min(min(min(5 * outerTimeTileScatter + 4, 10 * outerProcTileScatter1 + 4), 5 * outerProcTileScatter1 + 5 * outerProcTileScatter2 + 5), 5 * outerProcTileScatter1 + M + 2), 2 * M + 2 * N - 6), 5 * outerProcTileScatter2 + M + N), 10 * outerProcTileScatter2 + N + 3); c0 += 1) + for (int c1 = max(max(max(max(5 * outerProcTileScatter1, 5 * outerProcTileScatter2 + 1), -5 * outerProcTileScatter2 + c0 - 1), -M + c0 + 2), (c0 + 1) / 2 + 2); c1 <= min(min(min(min(5 * outerProcTileScatter1 + 4, 5 * outerProcTileScatter2 + N + 2), -5 * outerProcTileScatter2 + N + c0), c0), N + c0 / 2 - 1); c1 += 1) + for (int c2 = max(max(5 * outerProcTileScatter2, -N + c1 + 2), c0 - c1 + 3); c2 <= min(min(5 * outerProcTileScatter2 + 4, c1 - 1), N + c0 - c1); c2 += 1) + S1(c0 - c1 + 1, -c0 + c1 + c2 - 2, c1 - c2, c0, c1, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/classen2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/classen2.in new file mode 100644 index 00000000000..8a74eaa9728 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/classen2.in @@ -0,0 +1,3 @@ +[outerTimeTileScatter, outerProcTileScatter1, outerProcTileScatter2, M, N] -> { S1[i0, i1, i2, 2i0 + i1 + i2, 1 + i0 + i1 + i2, 1 + i0 + i1] -> [2i0 + i1 + i2, 1 + i0 + i1 + i2, 1 + i0 + i1] : N >= 3 and i2 <= 3 + 5outerProcTileScatter1 - i0 - i1 and i1 >= -1 + 5outerProcTileScatter2 - i0 and M >= 2 and i2 <= 4 + 5outerTimeTileScatter - 2i0 - i1 and i1 <= 3 + 5outerProcTileScatter2 - i0 and i2 >= 1 and i2 <= -2 + N and i1 >= 1 and i1 <= -2 + N and i0 >= 1 and i0 <= -1 + M and i2 >= 5outerTimeTileScatter - 2i0 - i1 and i2 >= -1 + 5outerProcTileScatter1 - i0 - i1 } +[outerTimeTileScatter, outerProcTileScatter1, outerProcTileScatter2, M, N] -> { : } +[outerTimeTileScatter, outerProcTileScatter1, outerProcTileScatter2, M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/constant.c b/polly/lib/External/isl/test_inputs/codegen/cloog/constant.c new file mode 100644 index 00000000000..f39a3a2bde0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/constant.c @@ -0,0 +1,18 @@ +{ + for (int c1 = 0; c1 <= min(1023, M + 1024); c1 += 1) { + S1(c1); + S3(c1); + } + for (int c1 = max(0, M + 1025); c1 <= 1023; c1 += 1) { + S2(c1); + S3(c1); + } + for (int c0 = 0; c0 <= min(1023, M + 1024); c0 += 1) { + S4(c0); + S6(c0); + } + for (int c0 = max(0, M + 1025); c0 <= 1023; c0 += 1) { + S5(c0); + S6(c0); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/constant.in b/polly/lib/External/isl/test_inputs/codegen/cloog/constant.in new file mode 100644 index 00000000000..7cd365a8967 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/constant.in @@ -0,0 +1,3 @@ +[M] -> { S5[i0] -> [i0, 0, 1] : i0 >= 0 and i0 <= 1023 and i0 >= 1025 + M; S1[i0] -> [-1, i0, 0] : i0 >= 0 and i0 <= 1023 and i0 <= 1024 + M; S3[i0] -> [-1, i0, 2] : i0 >= 0 and i0 <= 1023; S2[i0] -> [-1, i0, 1] : i0 >= 0 and i0 <= 1023 and i0 >= 1025 + M; S4[i0] -> [i0, 0, 0] : i0 >= 0 and i0 <= 1023 and i0 <= 1024 + M; S6[i0] -> [i0, 0, 2] : i0 >= 0 and i0 <= 1023 } +[M] -> { : } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/constbound.c b/polly/lib/External/isl/test_inputs/codegen/cloog/constbound.c new file mode 100644 index 00000000000..219165dc8c9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/constbound.c @@ -0,0 +1,8 @@ +for (int c0 = 0; c0 <= 199; c0 += 1) { + for (int c2 = 50 * c0; c2 <= 50 * c0 + 24; c2 += 1) + for (int c3 = 0; c3 <= c2; c3 += 1) + S1(c0, c2, c3); + for (int c2 = 50 * c0 + 25; c2 <= 50 * c0 + 49; c2 += 1) + for (int c3 = 0; c3 <= c2; c3 += 1) + S2(c0, c2, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/constbound.in b/polly/lib/External/isl/test_inputs/codegen/cloog/constbound.in new file mode 100644 index 00000000000..24727a8737c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/constbound.in @@ -0,0 +1,3 @@ +{ S2[i0, i1, i2] -> [i0, 1, i1, i2] : i1 >= 0 and i1 <= 9999 and i2 >= 0 and i2 <= i1 and i1 >= 25 + 50i0 and i1 <= 49 + 50i0; S1[i0, i1, i2] -> [i0, 0, i1, i2] : i1 >= 0 and i1 <= 9999 and i2 >= 0 and i2 <= i1 and i1 >= 50i0 and i1 <= 24 + 50i0 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/darte.c b/polly/lib/External/isl/test_inputs/codegen/cloog/darte.c new file mode 100644 index 00000000000..acb63714ed2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/darte.c @@ -0,0 +1,14 @@ +for (int c0 = -n + 1; c0 <= n; c0 += 1) { + if (c0 <= 0) + for (int c2 = -c0 + 4; c2 <= 2 * n - c0 + 2; c2 += 2) + S1(1, -c0 + 1, ((c0 + c2) / 2) - 1); + for (int c1 = max(c0 + 2, -c0 + 4); c1 <= min(2 * n - c0, 2 * n + c0); c1 += 2) { + for (int c2 = c1 + 2; c2 <= 2 * n + c1; c2 += 2) + S1((c0 + c1) / 2, (-c0 + c1) / 2, (-c1 + c2) / 2); + for (int c2 = 1; c2 <= n; c2 += 1) + S2(((c0 + c1) / 2) - 1, (-c0 + c1) / 2, c2); + } + if (c0 >= 1) + for (int c2 = 1; c2 <= n; c2 += 1) + S2(n, n - c0 + 1, c2); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/darte.in b/polly/lib/External/isl/test_inputs/codegen/cloog/darte.in new file mode 100644 index 00000000000..55897a5a7e4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/darte.in @@ -0,0 +1,3 @@ +[n] -> { S2[i0, i1, i2] -> [1 + i0 - i1, 2 + i0 + i1, i2] : i0 >= 1 and i0 <= n and i1 >= 1 and i1 <= n and i2 >= 1 and i2 <= n; S1[i0, i1, i2] -> [i0 - i1, i0 + i1, i0 + i1 + 2i2] : i0 >= 1 and i0 <= n and i1 >= 1 and i1 <= n and i2 >= 1 and i2 <= n } +[n] -> { : } +[n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/dealII.c b/polly/lib/External/isl/test_inputs/codegen/cloog/dealII.c new file mode 100644 index 00000000000..7db605d5d5b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/dealII.c @@ -0,0 +1,12 @@ +{ + for (int c0 = 0; c0 <= min(T_2 - 1, T_66); c0 += 1) { + S1(c0); + S2(c0); + } + for (int c0 = T_2; c0 <= min(T_67 - 1, T_66); c0 += 1) + S2(c0); + for (int c0 = max(0, T_66 + 1); c0 < T_2; c0 += 1) + S1(c0); + if (T_2 == 0 && T_67 == 0) + S1(0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/dealII.in b/polly/lib/External/isl/test_inputs/codegen/cloog/dealII.in new file mode 100644 index 00000000000..fc0310b638f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/dealII.in @@ -0,0 +1,3 @@ +[T_2, T_67, T_66] -> { S1[scat_0] -> [scat_0, 0] : (scat_0 <= -1 + T_2 and scat_0 >= 0) or (scat_0 <= -T_67 and scat_0 >= 0); S2[scat_0] -> [scat_0, 1] : (scat_0 <= -1 + T_2 and scat_0 >= 0 and scat_0 <= T_66) or (scat_0 <= -1 + T_67 and scat_0 >= 0 and scat_0 <= T_66) } +[T_2, T_67, T_66] -> { : T_2 <= 4 and T_2 >= 0 and T_67 <= 4 and T_67 >= 0 } +[T_2, T_67, T_66] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/donotsimp.c b/polly/lib/External/isl/test_inputs/codegen/cloog/donotsimp.c new file mode 100644 index 00000000000..4c482e2997e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/donotsimp.c @@ -0,0 +1,6 @@ +for (int c1 = 1; c1 <= 10; c1 += 1) { + for (int c3 = 1; c3 <= c1; c3 += 1) + S1(c1, c3); + for (int c3 = 11; c3 <= M; c3 += 1) + S2(c1, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/donotsimp.in b/polly/lib/External/isl/test_inputs/codegen/cloog/donotsimp.in new file mode 100644 index 00000000000..c1541ccff7e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/donotsimp.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [0, i0, 0, i1, 0] : i0 >= 1 and i0 <= 10 and i1 >= 11 and i1 <= M; S1[i0, i1] -> [0, i0, 0, i1, 0] : i0 >= 1 and i0 <= 10 and i1 >= 1 and i1 <= i0 } +[M] -> { : M >= 20 } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/dot.c b/polly/lib/External/isl/test_inputs/codegen/cloog/dot.c new file mode 100644 index 00000000000..b08de331226 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/dot.c @@ -0,0 +1,7 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) + S1(0, c1); + for (int c0 = 1; c0 <= N; c0 += 1) + for (int c1 = 1; c1 <= M; c1 += 1) + S2(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/dot.in b/polly/lib/External/isl/test_inputs/codegen/cloog/dot.in new file mode 100644 index 00000000000..37e1f14bad2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/dot.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[0, i1] -> [0, i1, 0] : i1 <= M and N >= 0 and i1 >= 1; S2[i0, i1] -> [i0, i1, 1] : i0 >= 1 and i1 <= M and i0 <= N and i1 >= 1 } +[M, N] -> { : M >= 1 and N >= 1 } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/dot2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/dot2.c new file mode 100644 index 00000000000..a1b10692c2a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/dot2.c @@ -0,0 +1,12 @@ +{ + for (int c0 = 1; c0 <= min(M, N); c0 += 1) { + S1(c0); + for (int c1 = 1; c1 <= M; c1 += 1) + S2(c0, c1); + } + for (int c0 = N + 1; c0 <= M; c0 += 1) + S1(c0); + for (int c0 = M + 1; c0 <= N; c0 += 1) + for (int c1 = 1; c1 <= M; c1 += 1) + S2(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/dot2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/dot2.in new file mode 100644 index 00000000000..8fa8381e20b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/dot2.in @@ -0,0 +1,3 @@ +[M, N] -> { S2[i0, i1] -> [i0, i1, 1] : i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= M; S1[i0] -> [i0, 0, 0] : i0 >= 1 and i0 <= M } +[M, N] -> { : M >= 1 and N >= 1 } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/durbin_e_s.c b/polly/lib/External/isl/test_inputs/codegen/cloog/durbin_e_s.c new file mode 100644 index 00000000000..25590998d5f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/durbin_e_s.c @@ -0,0 +1,23 @@ +{ + S4(1, 0, 0); + S7(1, 0, 0); + S8(1, 0, 3); + for (int c0 = 2; c0 <= 9; c0 += 1) { + S2(c0, -7, 0); + for (int c1 = -7; c1 < c0 - 8; c1 += 1) + S3(c0, c1, 1); + S6(c0, c0 - 9, 2); + S8(c0, 0, 3); + for (int c1 = 1; c1 < c0; c1 += 1) + S5(c0, c1, 3); + } + S2(10, -7, 0); + for (int c1 = -7; c1 <= 1; c1 += 1) + S3(10, c1, 1); + S6(10, 1, 2); + for (int c1 = 1; c1 <= 9; c1 += 1) { + S5(10, c1, 3); + S1(10, c1, 4); + } + S1(10, 10, 4); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/durbin_e_s.in b/polly/lib/External/isl/test_inputs/codegen/cloog/durbin_e_s.in new file mode 100644 index 00000000000..77d32ad73f9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/durbin_e_s.in @@ -0,0 +1,3 @@ +{ S5[i0, i1, 3] -> [i0, i1, 3, 4] : i1 <= -1 + i0 and i0 <= 10 and i1 >= 1; S8[i0, 0, 3] -> [i0, 0, 3, 7] : i0 >= 1 and i0 <= 9; S2[i0, -7, 0] -> [i0, -7, 0, 1] : i0 >= 2 and i0 <= 10; S3[i0, i1, 1] -> [i0, i1, 1, 2] : i1 >= -7 and i0 <= 10 and i1 <= -9 + i0; S1[10, i1, 4] -> [10, i1, 4, 0] : i1 >= 1 and i1 <= 10; S7[1, 0, 0] -> [1, 0, 0, 6]; S4[1, 0, 0] -> [1, 0, 0, 3]; S6[i0, -9 + i0, 2] -> [i0, -9 + i0, 2, 5] : i0 >= 2 and i0 <= 10 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/emploi.c b/polly/lib/External/isl/test_inputs/codegen/cloog/emploi.c new file mode 100644 index 00000000000..80ee37d5921 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/emploi.c @@ -0,0 +1,5 @@ +for (int c0 = 1; c0 <= n; c0 += 1) { + S1(c0); + for (int c1 = 1; c1 <= m; c1 += 1) + S2(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/emploi.in b/polly/lib/External/isl/test_inputs/codegen/cloog/emploi.in new file mode 100644 index 00000000000..57016623a25 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/emploi.in @@ -0,0 +1,3 @@ +[m, n] -> { S1[i0] -> [i0, 0, 0] : (i0 >= 1 and i0 <= n and i0 <= 2m) or (i0 >= 1 and i0 <= n and i0 >= m); S2[i0, i1] -> [i0, i1, 1] : i0 >= 1 and i0 <= n and i1 >= 1 and i1 <= m } +[m, n] -> { : } +[m, n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/equality.c b/polly/lib/External/isl/test_inputs/codegen/cloog/equality.c new file mode 100644 index 00000000000..2535b8b975e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/equality.c @@ -0,0 +1,7 @@ +for (int c0 = 0; c0 <= 5; c0 += 1) + for (int c1 = c0 <= 2 ? 2 * c0 : 4; c1 <= (c0 >= 2 ? 2 * c0 : 4); c1 += 1) { + if (c1 == 2 * c0) + S1(c0, 2 * c0); + if (c1 == 4) + S2(c0, 4); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/equality.in b/polly/lib/External/isl/test_inputs/codegen/cloog/equality.in new file mode 100644 index 00000000000..677fa901324 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/equality.in @@ -0,0 +1,3 @@ +{ S1[i0, 2i0] -> [i0, 2i0, 0] : i0 >= 0 and i0 <= 5; S2[i0, 4] -> [i0, 4, 1] : i0 >= 0 and i0 <= 5 } +{ : } +{ [i, j, k] -> atomic[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/equality2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/equality2.c new file mode 100644 index 00000000000..be22da28be4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/equality2.c @@ -0,0 +1,8 @@ +for (int c0 = 1; c0 <= 10000; c0 += 1) + for (int c1 = 1000; c1 <= 1016; c1 += 1) + for (int c2 = 1; c2 < 2 * c1 - 1998; c2 += 1) { + if (c1 <= 1008 && c2 + 1999 == 2 * c1) + S2(c0, c1, 2 * c1 - 1999, 1, c0, 2 * c1 - 1000, 1, 2, c0, c1 - 499, 2 * c1 - 1999, c0, 2 * c1 - 1999, c1 - 999, c1 - 999); + if (c2 == 1 && c1 % 2 == 0) + S1(c0, c1, 1, 2, c0, (c1 / 2) + 1, c1 - 999, c0, c1 - 999, (c1 / 2) - 499, (c1 / 2) - 499); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/equality2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/equality2.in new file mode 100644 index 00000000000..95b3f793407 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/equality2.in @@ -0,0 +1,3 @@ +{ S1[i0, i1, 1, 2, i0, i5, -999 + i1, i0, -999 + i1, i9, i10] -> [i0, i1, 1, 2, i0, n, -999 + i1, i0, -999 + i1, r, s, 0, 0, 0, 0, 0] : 2s = -998 + i1 and 2n = 2 + i1 and 2i10 = -998 + i1 and 2i5 = 2 + i1 and 2i9 = -998 + i1 and 2r = -998 + i1 and i0 >= 1 and i0 <= 10000 and i1 >= 1000 and i1 <= 1016; S2[i0, i1, -1999 + 2i1, 1, i0, -1000 + 2i1, 1, 2, i0, -499 + i1, -1999 + 2i1, i0, -1999 + 2i1, -999 + i1, -999 + i1] -> [i0, i1, -1999 + 2i1, 1, i0, -1000 + 2i1, 1, 2, i0, -499 + i1, -1999 + 2i1, i0, -1999 + 2i1, -999 + i1, -999 + i1, 1] : i0 >= 1 and i0 <= 10000 and i1 >= 1000 and i1 <= 1008 } +{ : } +{ [i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x] -> atomic[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/esced.c b/polly/lib/External/isl/test_inputs/codegen/cloog/esced.c new file mode 100644 index 00000000000..f7c7ee0678c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/esced.c @@ -0,0 +1,5 @@ +for (int c0 = 1; c0 <= m; c0 += 1) { + S1(c0); + for (int c1 = 1; c1 <= n; c1 += 1) + S2(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/esced.in b/polly/lib/External/isl/test_inputs/codegen/cloog/esced.in new file mode 100644 index 00000000000..3bef6fd90f0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/esced.in @@ -0,0 +1,3 @@ +[n, m] -> { S1[i0] -> [i0, 0, 0] : i0 >= 1 and i0 <= m; S2[i0, i1] -> [i0, i1, 1] : i0 >= 1 and i0 <= m and i1 >= 1 and i1 <= n } +[n, m] -> { : } +[n, m] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/ex1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/ex1.c new file mode 100644 index 00000000000..2627f23ddde --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/ex1.c @@ -0,0 +1,15 @@ +{ + for (int c0 = 0; c0 <= 14; c0 += 1) + for (int c1 = 0; c1 < n - 14; c1 += 1) + S1(c0, c1); + for (int c0 = 15; c0 <= n; c0 += 1) { + for (int c1 = 0; c1 <= 9; c1 += 1) + S1(c0, c1); + for (int c1 = 10; c1 < n - 14; c1 += 1) { + S1(c0, c1); + S2(c0, c1); + } + for (int c1 = n - 14; c1 <= n; c1 += 1) + S2(c0, c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/ex1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/ex1.in new file mode 100644 index 00000000000..457b834afe2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/ex1.in @@ -0,0 +1,3 @@ +[n] -> { S2[i0, i1] -> [i0, i1, 1] : i0 >= 15 and i0 <= n and i1 >= 10 and i1 <= n; S1[i0, i1] -> [i0, i1, 0] : i0 >= 0 and i0 <= n and i1 >= 0 and i1 <= -15 + n } +[n] -> { : n >= 25 } +[n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/faber.c b/polly/lib/External/isl/test_inputs/codegen/cloog/faber.c new file mode 100644 index 00000000000..b398206b260 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/faber.c @@ -0,0 +1,155 @@ +{ + for (int c0 = 0; c0 <= 36; c0 += 1) { + for (int c1 = -6; c1 < c0 / 14 - 5; c1 += 1) { + for (int c2 = -((-2 * c1 + 3) / 5) + 9; c2 <= c1 + 12; c2 += 1) + S6(c0, c1, c2); + for (int c2 = c1 + 24; c2 <= -2 * c1 + 24; c2 += 1) + S2(c0, c1, c2); + for (int c2 = -2 * c1 + 30; c2 <= c1 + 48; c2 += 1) + S1(c0, c1, c2); + } + for (int c1 = c0 / 14 - 5; c1 < 0; c1 += 1) { + if (c1 >= -3 && 2 * c0 >= 7 * c1 + 42) + S7(c0, c1, 6); + for (int c2 = max(c1 - (6 * c0 + 77) / 77 + 13, -((-2 * c1 + 3) / 5) + 9); c2 <= c1 + 12; c2 += 1) + S6(c0, c1, c2); + for (int c2 = c1 - (3 * c0 + 14) / 14 + 49; c2 <= c1 + 48; c2 += 1) + S1(c0, c1, c2); + } + S3(c0, 0, 0); + S10(c0, 0, 0); + for (int c2 = 1; c2 <= 5; c2 += 1) + S3(c0, 0, c2); + for (int c2 = 6; c2 <= 2 * c0 / 21 + 4; c2 += 1) { + S3(c0, 0, c2); + S7(c0, 0, c2); + } + for (int c2 = max(6, 2 * c0 / 21 + 5); c2 <= -((6 * c0 + 77) / 77) + 12; c2 += 1) + S3(c0, 0, c2); + for (int c2 = -((6 * c0 + 77) / 77) + 13; c2 <= 12; c2 += 1) { + S3(c0, 0, c2); + S6(c0, 0, c2); + } + for (int c2 = 13; c2 <= 24; c2 += 1) + S3(c0, 0, c2); + for (int c2 = -((3 * c0 + 14) / 14) + 49; c2 <= 48; c2 += 1) + S1(c0, 0, c2); + for (int c1 = 1; c1 <= 18; c1 += 1) { + for (int c2 = -8 * c1; c2 <= min(6, -8 * c1 + 24); c2 += 1) + S3(c0, c1, c2); + if (c1 == 2) { + S3(c0, 2, 7); + } else if (c0 >= 35 && c1 == 1) { + S3(c0, 1, 7); + S7(c0, 1, 7); + } else if (c0 <= 34 && c1 == 1) + S3(c0, 1, 7); + for (int c2 = 8; c2 <= min(-8 * c1 + 24, c1 - (6 * c0 + 77) / 77 + 12); c2 += 1) + S3(c0, c1, c2); + for (int c2 = max(-8 * c1 + 25, c1 - (6 * c0 + 77) / 77 + 13); c2 <= c1 + 12; c2 += 1) + S6(c0, c1, c2); + if (c1 == 1) { + for (int c2 = -((6 * c0 + 77) / 77) + 14; c2 <= 13; c2 += 1) { + S3(c0, 1, c2); + S6(c0, 1, c2); + } + for (int c2 = 14; c2 <= 16; c2 += 1) + S3(c0, 1, c2); + } + for (int c2 = c1 - (3 * c0 + 14) / 14 + 49; c2 <= c1 + 48; c2 += 1) + S1(c0, c1, c2); + } + for (int c1 = 19; c1 <= 24; c1 += 1) { + for (int c2 = -8 * c1; c2 <= -8 * c1 + 24; c2 += 1) + S3(c0, c1, c2); + for (int c2 = c1 - (6 * c0 + 77) / 77 + 13; c2 <= 30; c2 += 1) + S6(c0, c1, c2); + } + } + for (int c0 = 37; c0 <= 218; c0 += 1) { + for (int c1 = (c0 + 5) / 14 - 8; c1 < min(0, c0 / 14 - 5); c1 += 1) { + if (c0 <= 46 && c1 == -3) + S7(c0, -3, 6); + if (-77 * ((-3 * c1 + 1) / 5) + 447 >= 6 * c0) + S6(c0, c1, -((-2 * c1 + 3) / 5) + 9); + for (int c2 = c1 + 24; c2 <= -2 * c1 + 24; c2 += 1) + S2(c0, c1, c2); + for (int c2 = -2 * c1 + 30; c2 <= c1 - (3 * c0 + 17) / 14 + 56; c2 += 1) + S1(c0, c1, c2); + } + if (c0 <= 148) + for (int c1 = max(0, (c0 + 5) / 14 - 8); c1 < c0 / 14 - 5; c1 += 1) { + if (c1 == 0) + S2(c0, 0, 24); + for (int c2 = max(c1 + 24, -2 * c1 + 30); c2 <= c1 - (3 * c0 + 17) / 14 + 56; c2 += 1) + S1(c0, c1, c2); + } + if (c0 >= 79 && c0 % 14 >= 9) { + for (int c2 = max((c0 - 70) / 14 + 24, (c0 - 70) / 14 - (3 * c0 + 14) / 14 + 49); c2 <= (c0 - 70) / 14 - (3 * c0 + 17) / 14 + 56; c2 += 1) + S1(c0, c0 / 14 - 5, c2); + } else if (c0 <= 69 && c0 % 14 >= 9) { + if (c0 <= 41) + S7(c0, -3, 6); + S6(c0, c0 / 14 - 5, 8); + for (int c2 = -((-c0 + 83) / 14) - (3 * c0 + 14) / 14 + 49; c2 <= -((-c0 + 83) / 14) - (3 * c0 + 17) / 14 + 56; c2 += 1) + S1(c0, c0 / 14 - 5, c2); + } + for (int c1 = (c0 + 5) / 14 - 5; c1 < 0; c1 += 1) { + if (7 * c1 + 114 >= 2 * c0) + S7(c0, c1, 6); + for (int c2 = max(8, c1 - (6 * c0 + 77) / 77 + 13); c2 <= c1 - (6 * c0 + 91) / 77 + 15; c2 += 1) + S6(c0, c1, c2); + for (int c2 = c1 - (3 * c0 + 14) / 14 + 49; c2 <= c1 - (3 * c0 + 17) / 14 + 56; c2 += 1) + S1(c0, c1, c2); + } + for (int c1 = max(0, (c0 + 5) / 14 - 5); c1 < c0 / 14 - 2; c1 += 1) { + for (int c2 = max(c1, -2 * c1 + 6); c2 <= min(-2 * c1 + 24, (2 * c0 - 7 * c1 - 10) / 21 + 1); c2 += 1) + S9(c0, c1, c2); + if (c1 >= 1 && c1 <= 6 && 14 * c1 + 46 >= c0) + S9(c0, c1, c1 + 5); + for (int c2 = max(c1 + 6, (2 * c0 - 7 * c1 - 10) / 21 + 2); c2 <= (2 * c1 + 1) / 5 + 7; c2 += 1) { + S7(c0, c1, c2); + S9(c0, c1, c2); + } + if (c1 <= 3 && 7 * c1 + 21 * ((2 * c1 + 41) / 5) >= 2 * c0 + 12) + S9(c0, c1, (2 * c1 + 1) / 5 + 8); + for (int c2 = (2 * c1 + 1) / 5 + 9; c2 <= c1 - (6 * c0 + 91) / 77 + 15; c2 += 1) { + S6(c0, c1, c2); + S9(c0, c1, c2); + } + for (int c2 = max(max(c1 + 6, c1 - (6 * c0 + 91) / 77 + 16), (2 * c0 - 7 * c1 - 10) / 21 + 2); c2 <= -2 * c1 + 24; c2 += 1) + S9(c0, c1, c2); + for (int c2 = max(c1, -2 * c1 + 30); c2 <= min(c1 + 24, c1 - (3 * c0 + 17) / 14 + 47); c2 += 1) + S8(c0, c1, c2); + for (int c2 = max(c1 + 24, c1 - (3 * c0 + 14) / 14 + 49); c2 <= c1 - (3 * c0 + 17) / 14 + 56; c2 += 1) + S1(c0, c1, c2); + } + for (int c1 = c0 / 14 - 2; c1 <= 18; c1 += 1) { + for (int c2 = c1 + 6; c2 <= min((2 * c1 + 1) / 5 + 7, floord(2 * c0 - 7 * c1, 21) + 4); c2 += 1) + S7(c0, c1, c2); + for (int c2 = max(6, (c0 + 5) / 14 + 1); c2 <= min(min(c1, c0 / 14 + 3), -c1 + c1 / 2 + 18); c2 += 1) + S5(c0, c1, c2); + for (int c2 = max(max(c1 + 6, c1 - (6 * c0 + 77) / 77 + 13), (2 * c1 + 1) / 5 + 9); c2 <= c1 - (6 * c0 + 91) / 77 + 15; c2 += 1) + S6(c0, c1, c2); + for (int c2 = max(c1 + (3 * c0 + 3) / 14 - 40, -c1 + (c1 + 1) / 2 + 21); c2 <= min(c1, c1 + 3 * c0 / 14 - 33); c2 += 1) + S4(c0, c1, c2); + for (int c2 = max(c1, c1 - (3 * c0 + 14) / 14 + 40); c2 <= min(c1 + 24, c1 - (3 * c0 + 17) / 14 + 47); c2 += 1) + S8(c0, c1, c2); + for (int c2 = max(c1 + 24, c1 - (3 * c0 + 14) / 14 + 49); c2 <= c1 - (3 * c0 + 17) / 14 + 56; c2 += 1) + S1(c0, c1, c2); + } + for (int c1 = 19; c1 <= 24; c1 += 1) { + for (int c2 = max(c1 - 12, (c0 + 5) / 14 + 1); c2 <= min(c0 / 14 + 3, -c1 + c1 / 2 + 18); c2 += 1) + S5(c0, c1, c2); + for (int c2 = max(max(c1 - 12, c1 + (3 * c0 + 3) / 14 - 40), -c1 + (c1 + 1) / 2 + 21); c2 <= min(c1, c1 + 3 * c0 / 14 - 33); c2 += 1) + S4(c0, c1, c2); + for (int c2 = max(c1 + 6, c1 - (6 * c0 + 77) / 77 + 13); c2 <= min(30, c1 - (6 * c0 + 91) / 77 + 15); c2 += 1) + S6(c0, c1, c2); + for (int c2 = max(c1, c1 - (3 * c0 + 14) / 14 + 40); c2 <= min(c1 + 24, c1 - (3 * c0 + 17) / 14 + 47); c2 += 1) + S8(c0, c1, c2); + } + for (int c1 = 25; c1 <= min(42, -((3 * c0 + 17) / 14) + 71); c1 += 1) + for (int c2 = max(c1 - 12, c1 + (3 * c0 + 3) / 14 - 40); c2 <= min(min(30, c1), c1 + 3 * c0 / 14 - 33); c2 += 1) + S4(c0, c1, c2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/faber.in b/polly/lib/External/isl/test_inputs/codegen/cloog/faber.in new file mode 100644 index 00000000000..4f78a5561d0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/faber.in @@ -0,0 +1,3 @@ +{ S5[idx4, idx5, idx6] -> [idx4, idx5, idx6, 4] : 14idx6 <= 42 + idx4 and 14idx6 >= 6 + idx4 and idx6 <= idx5 and idx6 >= -12 + idx5 and idx6 >= 6 and idx6 <= 30 and 2idx6 <= 36 - idx5; S8[idx4, idx5, idx6] -> [idx4, idx5, idx6, 7] : 14idx6 >= 546 - 3idx4 + 14idx5 and 14idx6 <= 654 - 3idx4 + 14idx5 and idx6 >= idx5 and idx6 <= 24 + idx5 and idx5 >= 0 and idx5 <= 24 and idx6 >= 30 - 2idx5; S2[idx4, idx5, idx6] -> [idx4, idx5, idx6, 1] : 14idx5 <= -84 + idx4 and 14idx5 >= -120 + idx4 and idx6 >= 24 + idx5 and idx6 <= 48 + idx5 and idx5 >= -6 and idx5 <= 18 and idx6 <= 24 - 2idx5; S10[idx4, idx5, idx6] -> [idx4, idx5, idx6, 9] : 7idx6 <= idx4 - 28idx5 and 7idx6 >= -36 + idx4 - 28idx5 and idx6 >= idx5 and idx6 <= 24 + idx5 and idx5 >= 0 and idx5 <= 24 and idx6 <= -2idx5; S3[idx4, idx5, idx6] -> [idx4, idx5, idx6, 2] : idx4 >= 0 and idx4 <= 36 and idx6 >= -8idx5 and idx6 <= 24 - 8idx5 and idx5 >= 0 and idx5 <= 24; S1[idx4, idx5, idx6] -> [idx4, idx5, idx6, 0] : 14idx6 >= 672 - 3idx4 + 14idx5 and 14idx6 <= 780 - 3idx4 + 14idx5 and idx6 >= 24 + idx5 and idx6 <= 48 + idx5 and idx5 >= -6 and idx5 <= 18 and idx6 >= 30 - 2idx5; S7[idx4, idx5, idx6] -> [idx4, idx5, idx6, 6] : 21idx6 <= 84 + 2idx4 - 7idx5 and 21idx6 >= 12 + 2idx4 - 7idx5 and idx6 <= 12 + idx5 and idx6 >= 6 + idx5 and idx6 >= 6 and idx6 <= 30 and 5idx6 <= 36 + 2idx5; S9[idx4, idx5, idx6] -> [idx4, idx5, idx6, 8] : 14idx5 <= -42 + idx4 and 14idx5 >= -78 + idx4 and idx6 >= idx5 and idx6 <= 24 + idx5 and idx5 >= 0 and idx5 <= 24 and idx6 <= 24 - 2idx5 and idx6 >= 6 - 2idx5; S4[idx4, idx5, idx6] -> [idx4, idx5, idx6, 3] : 14idx6 <= -462 + 3idx4 + 14idx5 and 14idx6 >= -570 + 3idx4 + 14idx5 and idx6 <= idx5 and idx6 >= -12 + idx5 and idx6 >= 6 and idx6 <= 30 and 2idx6 >= 42 - idx5; S6[idx4, idx5, idx6] -> [idx4, idx5, idx6, 5] : 77idx6 >= 924 - 6idx4 + 77idx5 and 77idx6 <= 1140 - 6idx4 + 77idx5 and idx6 <= 12 + idx5 and idx6 >= 6 + idx5 and idx6 >= 6 and idx6 <= 30 and 5idx6 >= 42 + 2idx5 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-1-1-2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-1-1-2.c new file mode 100644 index 00000000000..45fe75ef372 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-1-1-2.c @@ -0,0 +1,9 @@ +{ + S3(1, 1); + for (int c0 = 2; c0 <= M; c0 += 1) { + S1(c0, 1); + for (int c1 = 2; c1 < c0; c1 += 1) + S2(c0, c1); + S4(c0, c0); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-1-1-2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-1-1-2.in new file mode 100644 index 00000000000..ede8856d545 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-1-1-2.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [i0, i1, 1] : i1 <= -1 + i0 and i1 >= 2 and i0 <= M; S4[i0, i0] -> [i0, i0, 3] : M >= 3 and i0 <= M and i0 >= 2; S1[i0, 1] -> [i0, 1, 0] : M >= 3 and i0 <= M and i0 >= 2; S3[1, 1] -> [1, 1, 2] : M >= 3 } +[M] -> { : M >= 3 } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-2-1-2-3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-2-1-2-3.c new file mode 100644 index 00000000000..cfc3e7d7bea --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-2-1-2-3.c @@ -0,0 +1,10 @@ +{ + S3(1, 0); + for (int c2 = 2; c2 <= M; c2 += 1) + S1(1, 1, c2); + for (int c0 = 2; c0 <= M; c0 += 1) { + S4(c0, 0); + for (int c2 = c0 + 1; c2 <= M; c2 += 1) + S2(c0, 1, c2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-2-1-2-3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-2-1-2-3.in new file mode 100644 index 00000000000..57863cc5727 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-2-1-2-3.in @@ -0,0 +1,3 @@ +[M] -> { S1[1, 1, i2] -> [1, 1, i2, 0] : M >= 3 and i2 <= M and i2 >= 2; S2[i0, 1, i2] -> [i0, 1, i2, 1] : i2 >= 1 + i0 and i0 >= 2 and i2 <= M; S4[i0, 0] -> [i0, 0, 0, 3] : i0 >= 2 and M >= 3 and i0 <= M; S3[1, 0] -> [1, 0, 0, 2] : M >= 3 } +[M] -> { : M >= 3 } +[M] -> { [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-3-1-2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-3-1-2.c new file mode 100644 index 00000000000..9300d189691 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-3-1-2.c @@ -0,0 +1,17 @@ +{ + S3(2, 1); + S1(3, 1); + for (int c0 = 4; c0 <= M + 1; c0 += 1) { + S1(c0, 1); + for (int c1 = 2; c1 < (c0 + 1) / 2; c1 += 1) + S2(c0, c1); + if (c0 % 2 == 0) + S4(c0, c0 / 2); + } + for (int c0 = M + 2; c0 <= 2 * M; c0 += 1) { + for (int c1 = -M + c0; c1 < (c0 + 1) / 2; c1 += 1) + S2(c0, c1); + if (c0 % 2 == 0) + S4(c0, c0 / 2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-3-1-2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-3-1-2.in new file mode 100644 index 00000000000..c40383d8b6e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/forwardsub-3-1-2.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [i0, i1, 1] : 2i1 <= -1 + i0 and i1 >= 2 and i1 >= -M + i0; S4[i0, i1] -> [i0, j, 3] : 2j = i0 and 2i1 = i0 and M >= 3 and i0 <= 2M and i0 >= 4; S1[i0, 1] -> [i0, 1, 0] : M >= 3 and i0 <= 1 + M and i0 >= 3; S3[2, 1] -> [2, 1, 2] : M >= 3 } +[M] -> { : M >= 3 } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gauss.c b/polly/lib/External/isl/test_inputs/codegen/cloog/gauss.c new file mode 100644 index 00000000000..13a8e137173 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gauss.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 < M; c0 += 1) + for (int c1 = c0 + 1; c1 <= M; c1 += 1) { + for (int c3 = c0 + 1; c3 <= M; c3 += 1) + S2(c0, c3, c1); + for (int c3 = 1; c3 < c0; c3 += 1) + S1(c0, c3, c1); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gauss.in b/polly/lib/External/isl/test_inputs/codegen/cloog/gauss.in new file mode 100644 index 00000000000..439e72e7f34 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gauss.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1, i2] -> [i0, i2] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= -1 + i0 and i2 >= 1 + i0 and i2 <= M; S2[i0, i1, i2] -> [i0, i2] : i0 >= 1 and i0 <= M and i1 >= 1 + i0 and i1 <= M and i2 >= 1 + i0 and i2 <= M } +[M] -> { : } +[M] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gesced.c b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced.c new file mode 100644 index 00000000000..a36715ca3db --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced.c @@ -0,0 +1,16 @@ +{ + for (int c0 = 1; c0 <= N; c0 += 1) + S1(c0); + for (int c0 = N + 1; c0 <= 2 * N; c0 += 1) + for (int c1 = 1; c1 <= N; c1 += 1) + S2(c1, -N + c0); + for (int c0 = 2 * N + 1; c0 <= M + N; c0 += 1) { + for (int c1 = 1; c1 <= N; c1 += 1) + S3(c1, -2 * N + c0); + for (int c1 = 1; c1 <= N; c1 += 1) + S2(c1, -N + c0); + } + for (int c0 = M + N + 1; c0 <= M + 2 * N; c0 += 1) + for (int c1 = 1; c1 <= N; c1 += 1) + S3(c1, -2 * N + c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gesced.in b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced.in new file mode 100644 index 00000000000..6043f4b3fb9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced.in @@ -0,0 +1,3 @@ +[M, N] -> { S3[i0, i1] -> [2N + i1] : i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= M; S2[i0, i1] -> [N + i1] : i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= M; S1[i0] -> [i0] : i0 >= 1 and i0 <= N } +[M, N] -> { : N <= M and M >= 2 and N >= 2 } +[M, N] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gesced2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced2.c new file mode 100644 index 00000000000..0baf706ed99 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced2.c @@ -0,0 +1,20 @@ +{ + for (int c0 = 1; c0 <= 4; c0 += 1) + for (int c1 = 5; c1 < M - 9; c1 += 1) + S1(c0, c1); + for (int c0 = 5; c0 < M - 9; c0 += 1) { + for (int c1 = -c0 + 1; c1 <= 4; c1 += 1) + S2(c0 + c1, c0); + for (int c1 = 5; c1 <= min(M - 10, M - c0); c1 += 1) { + S1(c0, c1); + S2(c0 + c1, c0); + } + for (int c1 = M - c0 + 1; c1 < M - 9; c1 += 1) + S1(c0, c1); + for (int c1 = M - 9; c1 <= M - c0; c1 += 1) + S2(c0 + c1, c0); + } + for (int c0 = M - 9; c0 <= M; c0 += 1) + for (int c1 = 5; c1 < M - 9; c1 += 1) + S1(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gesced2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced2.in new file mode 100644 index 00000000000..a5d5bd27e28 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced2.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1] -> [i0, i1] : i0 >= 1 and i0 <= M and i1 >= 5 and i1 <= -10 + M; S2[i0, i1] -> [i1, i0 - i1] : i0 >= 1 and i0 <= M and i1 >= 5 and i1 <= -10 + M } +[M] -> { : M >= 16 } +[M] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gesced3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced3.c new file mode 100644 index 00000000000..c163ed0735e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced3.c @@ -0,0 +1,10 @@ +{ + for (int c0 = M + 1; c0 <= 2 * M; c0 += 1) + S1(-M + c0); + for (int c0 = 2 * M + 1; c0 <= M + N; c0 += 1) { + S2(-2 * M + c0); + S1(-M + c0); + } + for (int c0 = M + N + 1; c0 <= 2 * M + N; c0 += 1) + S2(-2 * M + c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/gesced3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced3.in new file mode 100644 index 00000000000..29f57f32176 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/gesced3.in @@ -0,0 +1,3 @@ +[M, N] -> { S2[i0] -> [2M + i0] : i0 >= 1 and i0 <= N; S1[i0] -> [M + i0] : i0 >= 1 and i0 <= N } +[M, N] -> { : N >= M and M >= 2 } +[M, N] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/guide.c b/polly/lib/External/isl/test_inputs/codegen/cloog/guide.c new file mode 100644 index 00000000000..bc48f1efe8a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/guide.c @@ -0,0 +1,6 @@ +{ + for (int c0 = 1; c0 <= N; c0 += 1) + S1(c0); + for (int c0 = N + 1; c0 <= 2 * N; c0 += 1) + S2(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/guide.in b/polly/lib/External/isl/test_inputs/codegen/cloog/guide.in new file mode 100644 index 00000000000..38c418c6c65 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/guide.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0] -> [i0, 0] : (i0 >= 1 and i0 <= N and i0 <= 2M) or (i0 >= 1 and i0 <= N and i0 >= M); S2[i0] -> [i0, 1] : i0 >= 1 + N and i0 <= 2N } +[M, N] -> { : } +[M, N] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/iftest.c b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest.c new file mode 100644 index 00000000000..0f41fb7902a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest.c @@ -0,0 +1,2 @@ +for (int c0 = 1; c0 <= n; c0 += 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/iftest.in b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest.in new file mode 100644 index 00000000000..741399d48a0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest.in @@ -0,0 +1,3 @@ +[m, n] -> { S1[i0] -> [i0, 0] : (i0 >= 1 and i0 <= n and i0 >= m) or (i0 >= 1 and i0 <= n and i0 <= 2m) } +[m, n] -> { : } +[m, n] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/iftest2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest2.c new file mode 100644 index 00000000000..8e3e4c1b90b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest2.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= N; c0 += 1) + for (int c1 = 1; c1 <= M; c1 += 1) + S1(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/iftest2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest2.in new file mode 100644 index 00000000000..a2e3212ece3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/iftest2.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1] -> [i0, i1, 0] : (i0 >= 1 and i0 <= N and i0 >= M and i1 >= 1 and i1 <= M) or (i0 >= 1 and i0 <= N and i0 <= 2M and i1 >= 1 and i1 <= M) } +[M, N] -> { : } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/infinite2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/infinite2.c new file mode 100644 index 00000000000..bbb6d6e750a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/infinite2.c @@ -0,0 +1,9 @@ +{ + for (int c0 = 1; c0 <= N; c0 += 1) { + S1(c0); + for (int c1 = 1; c1 <= M; c1 += 1) + S2(c0, c1); + } + for (int c0 = N + 1; 1; c0 += 1) + S1(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/infinite2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/infinite2.in new file mode 100644 index 00000000000..64fb5d55735 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/infinite2.in @@ -0,0 +1,3 @@ +[M, N] -> { S2[i0, i1] -> [i0, i1, 1] : i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= M; S1[i0] -> [i0, 0, 0] : i0 >= 1 } +[M, N] -> { : M >= 1 and N >= 1 } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/jacobi-shared.c b/polly/lib/External/isl/test_inputs/codegen/cloog/jacobi-shared.c new file mode 100644 index 00000000000..50840a86877 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/jacobi-shared.c @@ -0,0 +1,3 @@ +if (((t1 + 31) % 32) + g2 >= 2 && N >= ((t1 + 31) % 32) + g2 + 2 && (h0 - 1) % 2 == 0) + for (int c0 = max(((t0 + 15) % 16) + 1, ((g1 + t0 + 13) % 16) - g1 + 3); c0 <= min(32, N - g1 - 1); c0 += 16) + S1(g1 + c0 - 1, ((t1 + 31) % 32) + g2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/jacobi-shared.in b/polly/lib/External/isl/test_inputs/codegen/cloog/jacobi-shared.in new file mode 100644 index 00000000000..d6153244284 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/jacobi-shared.in @@ -0,0 +1,3 @@ +[T, N, h0, b0, b1, g0, g1, g2, g3, g4, t0, t1] -> { S1[i0, i1] -> [1 - g1 + i0, 1 - g2 + i1, t0, t1] : exists (e0 = [(-1 + h0)/2], e1 = [(-2016b0 - g1)/2048], e2 = [(-992b1 - g2)/1024], e3 = [(-1 + t0 - i0)/16], e4 = [(-1 + t1 - i1)/32]: g0 = h0 and 2e0 = -1 + h0 and 2048e1 = -2016b0 - g1 and 1024e2 = -992b1 - g2 and 16e3 = -1 + t0 - i0 and 32e4 = -1 + t1 - i1 and h0 >= 1 and h0 <= -1 + 2T and i0 >= 2 and i0 <= -2 + N and i1 >= 2 and i1 <= -2 + N and b1 <= 31 and b1 >= 0 and b0 <= 63 and b0 >= 0 and i1 <= 31 + g2 and i1 >= g2 and N >= 4 and i0 >= g1 and i0 <= 31 + g1 and g2 <= -2 + N and g2 >= -29 and g1 <= -2 + N and g1 >= -29 and g1 >= 32b0 and g2 >= 32b1 and 32b0 <= -2 + N and 32b1 <= -2 + N and t0 >= 0 and t0 <= 15 and t1 >= 0 and t1 <= 31) } +[T, N, h0, b0, b1, g0, g1, g2, g3, g4, t0, t1] -> { : exists (e0 = [(-32b0 + g1)/2048], e1 = [(-32b1 + g2)/1024]: g0 = h0 and 2048e0 = -32b0 + g1 and 1024e1 = -32b1 + g2 and g2 <= -2 + N and g2 >= -29 and g1 <= -2 + N and g1 >= -29 and b1 >= 0 and b1 <= 31 and b0 <= 63 and 32b1 <= -2 + N and 32b0 <= -2 + N and b0 >= 0 and N >= 4 and h0 >= 0 and h0 <= -1 + 2T and g2 >= 32b1 and g1 >= 32b0 and t0 >= 0 and t0 <= 15 and t1 >= 0 and t1 <= 31) } +[T, N, h0, b0, b1, g0, g1, g2, g3, g4, t0, t1] -> { [i, j, k, l] -> separate[x] : x >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/largeur.c b/polly/lib/External/isl/test_inputs/codegen/cloog/largeur.c new file mode 100644 index 00000000000..faced0a5573 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/largeur.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= M; c0 += 1) + for (int c1 = 1; c1 <= c0; c1 += 1) + S1(c1, c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/largeur.in b/polly/lib/External/isl/test_inputs/codegen/cloog/largeur.in new file mode 100644 index 00000000000..3a25146b10f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/largeur.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1] -> [i1, i0] : i0 >= 1 and i0 <= M and i1 >= i0 and i1 <= M } +[M] -> { : M >= 0 } +[M] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/levenshtein-1-2-3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/levenshtein-1-2-3.c new file mode 100644 index 00000000000..0e470b4d73b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/levenshtein-1-2-3.c @@ -0,0 +1,32 @@ +{ + S1(0, 0); + for (int c0 = 1; c0 <= N; c0 += 1) { + S2(c0, 0); + for (int c1 = 1; c1 < c0; c1 += 1) + S6(c0, c1); + S3(c0, c0); + } + S7(N + 1, 0); + for (int c1 = 1; c1 <= N; c1 += 1) { + S6(N + 1, c1); + S8(N + 1, c1); + } + for (int c0 = N + 2; c0 < 2 * M - N - 1; c0 += 1) { + S7(c0, -N + (N + c0 + 1) / 2 - 1); + if ((N - c0) % 2 == 0) { + S5(c0, (-N + c0) / 2); + S8(c0, (-N + c0) / 2); + } + for (int c1 = -N + (N + c0) / 2 + 1; c1 < (N + c0 + 1) / 2; c1 += 1) { + S6(c0, c1); + S8(c0, c1); + } + if ((N - c0) % 2 == 0) { + S4(c0, (N + c0) / 2); + S8(c0, (N + c0) / 2); + } + } + for (int c0 = 2 * M - N - 1; c0 < 2 * M - 1; c0 += 1) + for (int c1 = -M + c0 + 1; c1 < M; c1 += 1) + S6(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/levenshtein-1-2-3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/levenshtein-1-2-3.in new file mode 100644 index 00000000000..dc9446410e6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/levenshtein-1-2-3.in @@ -0,0 +1,3 @@ +[M, N] -> { S8[i0, i1] -> [i0, i1, 7] : i0 >= 1 + N and 2i1 <= N + i0 and 2i1 >= -N + i0 and i0 <= -2 + 2M - N and N <= -2 + M and N >= 1; S1[0, 0] -> [0, 0, 0] : N <= -2 + M and N >= 1; S5[i0, i1] -> [i0, j, 4] : 2j = -N + i0 and 2i1 = -N + i0 and i0 >= 2 + N and i0 <= -2 + 2M - N and N >= 1; S7[i0, i1] -> [i0, i1, 6] : i0 >= 1 + N and 2i1 <= -1 - N + i0 and i0 <= -2 + 2M - N and 2i1 >= -2 - N + i0 and N <= -2 + M and N >= 1; S2[i0, 0] -> [i0, 0, 1] : i0 >= 1 and i0 <= N and N <= -2 + M; S3[i0, i0] -> [i0, i0, 2] : i0 >= 1 and i0 <= N and N <= -2 + M; S4[i0, i1] -> [i0, j, 3] : 2j = N + i0 and 2i1 = N + i0 and i0 >= 2 + N and i0 <= -2 + 2M - N and N >= 1; S6[i0, i1] -> [i0, i1, 5] : 2i1 <= -1 + N + i0 and i1 <= -1 + i0 and i1 >= 1 - M + i0 and 2i1 >= 1 - N + i0 and i1 >= 1 and i1 <= -1 + M and N <= -2 + M } +[M, N] -> { : N <= -2 + M and N >= 1 } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lex.c b/polly/lib/External/isl/test_inputs/codegen/cloog/lex.c new file mode 100644 index 00000000000..e81e97e75a9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lex.c @@ -0,0 +1,4 @@ +for (int c0 = 0; c0 <= 10; c0 += 1) { + S2(c0); + S1(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lex.in b/polly/lib/External/isl/test_inputs/codegen/cloog/lex.in new file mode 100644 index 00000000000..7a268b605f0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lex.in @@ -0,0 +1,3 @@ +{ S2[i0] -> [i0, -1, 0] : i0 >= 0 and i0 <= 10; S1[i0] -> [i0, 0, 0] : i0 >= 0 and i0 <= 10 } +{ : } +{ [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-1-2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-1-2.c new file mode 100644 index 00000000000..bb1e0718719 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-1-2.c @@ -0,0 +1,8 @@ +for (int c0 = 1; c0 <= M; c0 += 1) { + for (int c1 = 1; c1 < c0; c1 += 1) + S1(c0, c1); + S1(c0, c0); + S2(c0, c0); + for (int c1 = c0 + 1; c1 <= M; c1 += 1) + S1(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-1-2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-1-2.in new file mode 100644 index 00000000000..b7d06d05953 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-1-2.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i0] -> [i0, i0, 1] : i0 >= 1 and i0 <= M; S1[i0, i1] -> [i0, i1, 0] : i0 >= 1 and i1 >= 1 and i0 <= M and i1 <= M } +[M] -> { : M >= 2 } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-2-1-2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-2-1-2.c new file mode 100644 index 00000000000..23f50d24818 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-2-1-2.c @@ -0,0 +1,12 @@ +for (int c0 = 1; c0 <= M; c0 += 1) { + for (int c1 = 1; c1 <= min(M, c0 + 1); c1 += 1) + S1(c0, c1); + if (c0 + 1 >= M) { + S2(c0, c0 + 2); + } else { + S1(c0, c0 + 2); + S2(c0, c0 + 2); + } + for (int c1 = c0 + 3; c1 <= M; c1 += 1) + S1(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-2-1-2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-2-1-2.in new file mode 100644 index 00000000000..6ed9040ab03 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lineality-2-1-2.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, 2 + i0] -> [i0, 2 + i0, 1] : i0 >= 1 and i0 <= M; S1[i0, i1] -> [i0, i1, 0] : i0 >= 1 and i1 >= 1 and i0 <= M and i1 <= M } +[M] -> { : M >= 2 } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/logo.c b/polly/lib/External/isl/test_inputs/codegen/cloog/logo.c new file mode 100644 index 00000000000..abe35b5916f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/logo.c @@ -0,0 +1,17 @@ +{ + for (int c1 = 0; c1 <= 7; c1 += 1) + S1(1, c1); + for (int c0 = 2; c0 <= 6; c0 += 1) { + for (int c1 = 0; c1 < c0 - 1; c1 += 1) + S2(c0, c1); + for (int c1 = c0 - 1; c1 <= 4; c1 += 1) { + S1(c0, c1); + S2(c0, c1); + } + for (int c1 = 5; c1 <= 7; c1 += 1) + S1(c0, c1); + } + for (int c0 = 7; c0 <= 8; c0 += 1) + for (int c1 = c0 - 1; c1 <= 7; c1 += 1) + S1(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/logo.in b/polly/lib/External/isl/test_inputs/codegen/cloog/logo.in new file mode 100644 index 00000000000..33e2d88b540 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/logo.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [i0, i1, 1] : i0 >= 2 and i0 <= 6 and i1 >= 0 and i1 <= 4; S1[i0, i1] -> [i0, i1, 0] : i0 >= 1 and i1 <= 7 and i1 >= -1 + i0 } +[M] -> { : } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/logopar.c b/polly/lib/External/isl/test_inputs/codegen/cloog/logopar.c new file mode 100644 index 00000000000..70f98e8cd89 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/logopar.c @@ -0,0 +1,17 @@ +{ + for (int c1 = 0; c1 <= m; c1 += 1) + S1(1, c1); + for (int c0 = 2; c0 <= n; c0 += 1) { + for (int c1 = 0; c1 < c0 - 1; c1 += 1) + S2(c0, c1); + for (int c1 = c0 - 1; c1 <= n; c1 += 1) { + S1(c0, c1); + S2(c0, c1); + } + for (int c1 = n + 1; c1 <= m; c1 += 1) + S1(c0, c1); + } + for (int c0 = n + 1; c0 <= m + 1; c0 += 1) + for (int c1 = c0 - 1; c1 <= m; c1 += 1) + S1(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/logopar.in b/polly/lib/External/isl/test_inputs/codegen/cloog/logopar.in new file mode 100644 index 00000000000..48b70fde5b5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/logopar.in @@ -0,0 +1,3 @@ +[m, n] -> { S1[i0, i1] -> [i0, i1, 0] : i0 >= 1 and i1 <= m and i1 >= -1 + i0; S2[i0, i1] -> [i0, i1, 1] : i0 >= 2 and i0 <= n and i1 >= 0 and i1 <= n } +[m, n] -> { : n <= m and m >= 0 and n >= 2 } +[m, n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lu.c b/polly/lib/External/isl/test_inputs/codegen/cloog/lu.c new file mode 100644 index 00000000000..a7fe2b36eed --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lu.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 <= n; c0 += 1) { + for (int c1 = 2; c1 <= n; c1 += 1) + for (int c2 = 1; c2 < min(c0, c1); c2 += 1) + S2(c2, c1, c0); + for (int c3 = c0 + 1; c3 <= n; c3 += 1) + S1(c0, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lu.in b/polly/lib/External/isl/test_inputs/codegen/cloog/lu.in new file mode 100644 index 00000000000..49952ccc46e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lu.in @@ -0,0 +1,3 @@ +[n] -> { S2[i0, i1, i2] -> [i2, i1] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n and i2 >= 1 + i0 and i2 <= n; S1[i0, i1] -> [i0, n] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n } +[n] -> { : } +[n] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lu2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/lu2.c new file mode 100644 index 00000000000..d5cc912359c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lu2.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 <= n; c0 += 1) { + for (int c1 = 2; c1 <= n; c1 += 1) + for (int c2 = 1; c2 < min(c0, c1); c2 += 1) + S2(c0, c1, c2, c1, c0); + for (int c3 = c0 + 1; c3 <= n; c3 += 1) + S1(c0, n, c0, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lu2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/lu2.in new file mode 100644 index 00000000000..5c71fc0aacc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lu2.in @@ -0,0 +1,3 @@ +[n] -> { S1[i0, n, i0, i3] -> [i0, n, i0, i3, 0, 0] : i0 >= 1 and i0 <= n and i3 >= 1 + i0 and i3 <= n; S2[i0, i1, i2, i1, i0] -> [i0, i1, i2, i1, i0, 1] : i2 >= 1 and i2 <= n and i2 <= -1 + i1 and i1 <= n and i2 <= -1 + i0 and i0 <= n } +[n] -> { : } +[n] -> { [i, j, k, l, m, n'] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lux.c b/polly/lib/External/isl/test_inputs/codegen/cloog/lux.c new file mode 100644 index 00000000000..3b33025e227 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lux.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 <= M; c0 += 1) { + for (int c1 = 1; c1 < c0; c1 += 1) + for (int c2 = c1 + 1; c2 <= M; c2 += 1) + S2(c0, c1, c2, c2, c0); + for (int c3 = c0 + 1; c3 <= M; c3 += 1) + S1(c0, c0, M, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/lux.in b/polly/lib/External/isl/test_inputs/codegen/cloog/lux.in new file mode 100644 index 00000000000..75ed7e24000 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/lux.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i0, M, i3] -> [i0, i0, M, i3, 0, 0] : i0 >= 1 and i0 <= M and i3 >= 1 + i0 and i3 <= M; S2[i0, i1, i2, i2, i0] -> [i0, i1, i2, i2, i0, 1] : i1 >= 1 and i1 <= M and i2 >= 1 + i1 and i2 <= M and i1 <= -1 + i0 and i0 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m, n] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/merge.c b/polly/lib/External/isl/test_inputs/codegen/cloog/merge.c new file mode 100644 index 00000000000..64564ad9987 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/merge.c @@ -0,0 +1,8 @@ +{ + S1(0); + for (int c0 = 0; c0 <= 10; c0 += 1) { + if (c0 >= 2) + S2(c0); + S3(c0); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/merge.in b/polly/lib/External/isl/test_inputs/codegen/cloog/merge.in new file mode 100644 index 00000000000..1747c44cf32 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/merge.in @@ -0,0 +1,3 @@ +{ S3[i0] -> [i0, 2] : i0 >= 0 and i0 <= 10; S2[i0] -> [i0, 1] : i0 >= 2 and i0 <= 10; S1[0] -> [0, 0] } +{ : } +{ [i, j] -> atomic[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-1-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/min-1-1.c new file mode 100644 index 00000000000..b869e1b8b40 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-1-1.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= N; c0 += 1) + for (int c1 = 0; c1 <= min(min(M, c0), N - c0); c1 += 1) + S1(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-1-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/min-1-1.in new file mode 100644 index 00000000000..76e511ff2fa --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-1-1.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1] -> [i0, i1, 0] : i0 >= 1 and i1 >= 0 and i1 <= M and i1 <= i0 and i1 <= N - i0 } +[M, N] -> { : } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-2-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/min-2-1.c new file mode 100644 index 00000000000..8e6fabf7d28 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-2-1.c @@ -0,0 +1,4 @@ +for (int c0 = 1; c0 <= N; c0 += 1) + for (int c1 = 0; c1 <= min(min(M, c0), N - c0); c1 += 1) + for (int c2 = 0; c2 <= min(min(M, c0), N - c0); c2 += 1) + S1(c0, c1, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-2-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/min-2-1.in new file mode 100644 index 00000000000..aa0bcaefd86 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-2-1.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1, i2] -> [i0, i1, i2, 0] : i0 >= 1 and i1 >= 0 and i1 <= M and i1 <= i0 and i1 <= N - i0 and i2 >= 0 and i2 <= M and i2 <= i0 and i2 <= N - i0 } +[M, N] -> { : } +[M, N] -> { [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-3-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/min-3-1.c new file mode 100644 index 00000000000..8d11d76d568 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-3-1.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= min(10, M); c0 += 1) + for (int c1 = 0; c1 <= min(10, M); c1 += 1) + S1(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-3-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/min-3-1.in new file mode 100644 index 00000000000..1676ac9318e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-3-1.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1] -> [i0, i1, 0] : i0 >= 0 and i0 <= M and i0 <= 10 and i1 >= 0 and i1 <= M and i1 <= 10 } +[M] -> { : M >= 0 } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-4-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/min-4-1.c new file mode 100644 index 00000000000..da272fc291f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-4-1.c @@ -0,0 +1,2 @@ +for (int c0 = max(-M, -N); c0 <= min(N, O); c0 += 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/min-4-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/min-4-1.in new file mode 100644 index 00000000000..72fd01269be --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/min-4-1.in @@ -0,0 +1,3 @@ +[M, N, O] -> { S1[i0] -> [i0, 0] : i0 >= -M and i0 >= -N and i0 <= N and i0 <= O } +[M, N, O] -> { : } +[M, N, O] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod.c b/polly/lib/External/isl/test_inputs/codegen/cloog/mod.c new file mode 100644 index 00000000000..cafe0b85ddb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= 3; c0 += 1) + if ((c0 + 1) % 3 >= 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod.in b/polly/lib/External/isl/test_inputs/codegen/cloog/mod.in new file mode 100644 index 00000000000..2759c0e506e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod.in @@ -0,0 +1,3 @@ +{ S1[i0] -> [i0, 0] : exists (e0 = [(1 + i0)/3]: i0 >= 0 and i0 <= 3 and 3e0 <= i0 and 3e0 >= -1 + i0) } +{ : } +{ [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/mod2.c new file mode 100644 index 00000000000..cafe0b85ddb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod2.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= 3; c0 += 1) + if ((c0 + 1) % 3 >= 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/mod2.in new file mode 100644 index 00000000000..58134bbbfe6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod2.in @@ -0,0 +1,3 @@ +{ S1[i] -> [i, 0] : exists (e0 = [(i)/3]: i >= 0 and i <= 3 and 3e0 <= i and 3e0 >= -1 + i) } +{ : } +{ [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/mod3.c new file mode 100644 index 00000000000..f8d879ce1ae --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod3.c @@ -0,0 +1,4 @@ +for (int c0 = max(0, 32 * h0 - 1991); c0 <= min(999, 32 * h0 + 31); c0 += 1) + if ((32 * h0 - c0 + 32) % 64 >= 1) + for (int c1 = 0; c1 <= 999; c1 += 1) + S1(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/mod3.in new file mode 100644 index 00000000000..bd0713eeba3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod3.in @@ -0,0 +1,3 @@ +[h0] -> { S1[i0, i1] -> [i0, i1, 0] : exists (e0 = [(32 + 32h0 - i0)/64]: i0 >= 0 and i0 <= 999 and i0 >= -2015 + 32h0 and 32e0 >= -999 + 32h0 - i0 and i1 >= 0 and i1 <= 999 and 64e0 >= -31 + 32h0 - i0 and 64e0 <= 31 + 32h0 - i0 and i0 <= 32 + 32h0) } +[h0] -> { : h0 <= 93 and h0 >= 0 } +[h0] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod4.c b/polly/lib/External/isl/test_inputs/codegen/cloog/mod4.c new file mode 100644 index 00000000000..a5dca247b96 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod4.c @@ -0,0 +1,5 @@ +for (int c0 = 2; c0 <= 10; c0 += 3) { + S1(c0, (c0 + 1) / 3, (c0 + 1) / 3, 2, (c0 - 2) / 3); + S2(c0, (c0 + 1) / 3, (c0 + 1) / 3, 2, (c0 - 2) / 3); + S3(c0, (c0 + 1) / 3, (c0 + 1) / 3, 2, (c0 - 2) / 3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mod4.in b/polly/lib/External/isl/test_inputs/codegen/cloog/mod4.in new file mode 100644 index 00000000000..2002cef3ed3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mod4.in @@ -0,0 +1,3 @@ +{ S2[j, div41, div42, 2, mod6_a] -> [j, div41, k, 2, m, 1] : 3k = 1 + j and 3div42 = 1 + j and 3m = -2 + j and 3mod6_a = -2 + j and 3div41 >= 1 + j and 3div41 <= 2 + j and j >= 1 and j <= 10; S1[j, div41, div42, 2, mod6_a] -> [j, div41, div42, 2, m, 0] : 3m = -2 + j and 3mod6_a = -2 + j and j >= 1 and j <= 10 and 3div41 >= j and 3div42 >= -1 + j and 3div42 <= 1 + j and 3div41 <= 2 + j; S3[j, div41, div42, 2, mod6_a] -> [j, div41, div42, 2, m, 2] : 3m = -2 + j and 3mod6_a = -2 + j and j >= 1 and j <= 10 and 3div41 >= j and 3div42 >= -1 + j and 3div42 <= 1 + j and 3div41 <= 2 + j } +{ : } +{ [i, j, k, l, m, n] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mode.c b/polly/lib/External/isl/test_inputs/codegen/cloog/mode.c new file mode 100644 index 00000000000..bcfd31839bb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mode.c @@ -0,0 +1,10 @@ +for (int c0 = 0; c0 <= M; c0 += 1) { + for (int c1 = 0; c1 <= min(N, c0); c1 += 1) { + S1(c0, c1); + S2(c0, c1); + } + for (int c1 = max(0, N + 1); c1 <= c0; c1 += 1) + S1(c0, c1); + for (int c1 = c0 + 1; c1 <= N; c1 += 1) + S2(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mode.in b/polly/lib/External/isl/test_inputs/codegen/cloog/mode.in new file mode 100644 index 00000000000..914c37e642a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mode.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1] -> [i0, i1, 0] : i0 >= 0 and i0 <= M and i1 >= 0 and i1 <= i0; S2[i0, i1] -> [i0, i1, 1] : i0 >= 0 and i0 <= M and i1 >= 0 and i1 <= N } +[M, N] -> { : } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/multi-mm-1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-mm-1.c new file mode 100644 index 00000000000..271d863f008 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-mm-1.c @@ -0,0 +1,8 @@ +for (int c0 = 0; c0 <= M; c0 += 1) { + for (int c1 = 0; c1 <= min(N, c0); c1 += 1) { + S1(c0, c1); + S2(c0, c1); + } + for (int c1 = N + 1; c1 <= c0; c1 += 1) + S1(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/multi-mm-1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-mm-1.in new file mode 100644 index 00000000000..22bdd1b4234 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-mm-1.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1] -> [i0, i1, 0] : i1 >= 0 and i1 <= i0 and i0 <= M; S2[i0, i1] -> [i0, i1, 1] : i1 >= 0 and i1 <= i0 and i0 <= M and i1 <= N } +[M, N] -> { : N <= M and N >= 1 } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride.c b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride.c new file mode 100644 index 00000000000..2c63c085104 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride.c @@ -0,0 +1,2 @@ +{ +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride.in b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride.in new file mode 100644 index 00000000000..fdef8f90c2e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride.in @@ -0,0 +1,3 @@ +{ S1[i0, i1, i2] -> [i0, j, k, 0] : 2i1 = -1 + i0 and 2j = -1 + i0 and 6k = -2 + i0 and 6i2 = -2 + i0 and i0 >= 0 and i0 <= 100 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride2.c new file mode 100644 index 00000000000..14f80506e0b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride2.c @@ -0,0 +1,2 @@ +for (int c0 = 5; c0 <= 100; c0 += 6) + S1(c0, (c0 - 1) / 2, (c0 - 2) / 3); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride2.in new file mode 100644 index 00000000000..d2c4bbc965e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/multi-stride2.in @@ -0,0 +1,3 @@ +{ S1[i0, i1, i2] -> [i0, j, k, 0] : 2i1 = -1 + i0 and 2j = -1 + i0 and 3k = -2 + i0 and 3i2 = -2 + i0 and i0 >= 0 and i0 <= 100 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mxm-shared.c b/polly/lib/External/isl/test_inputs/codegen/cloog/mxm-shared.c new file mode 100644 index 00000000000..c2423f01f5c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mxm-shared.c @@ -0,0 +1,6 @@ +if (g4 == 0 && N >= g0 + t1 + 1 && t1 <= 7) { + for (int c0 = t0; c0 <= min(127, N - g1 - 1); c0 += 16) + S1(g0 + t1, g1 + c0); +} else if (g4 >= 4 && N >= g0 + t1 + 1 && t1 <= 7 && g4 % 4 == 0) + for (int c0 = t0; c0 <= min(127, N - g1 - 1); c0 += 16) + S1(g0 + t1, g1 + c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/mxm-shared.in b/polly/lib/External/isl/test_inputs/codegen/cloog/mxm-shared.in new file mode 100644 index 00000000000..a525e9c0dd8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/mxm-shared.in @@ -0,0 +1,3 @@ +[N, b0, b1, g0, g1, g2, g3, g4, t0, t1] -> { S1[g0 + t1, i1] -> [-g1 + i1, t1, t0, t1] : (exists (e0 = [(-g1)/128], e1 = [(128b1 + 31g1)/4096], e2 = [(t0 - i1)/16], e3 = [(-120b0 - g0)/128]: g4 = 0 and g2 = 8b0 and g3 = 128b1 and 128e0 = -g1 and 4096e1 = 128b1 + 31g1 and 16e2 = t0 - i1 and 128e3 = -120b0 - g0 and g1 >= 128b1 and t1 <= -1 + N - g0 and g0 >= 8b0 and i1 <= -1 + N and b0 <= 15 and b0 >= 0 and b1 <= 31 and b1 >= 0 and i1 <= 127 + g1 and t1 >= 0 and t1 <= 7 and i1 >= g1 and t0 >= 0 and t0 <= 15)) or (exists (e0 = [(-g1)/128], e1 = [(128b1 + 31g1)/4096], e2 = [(t0 - i1)/16], e3 = [(-120b0 - g0)/128]: g4 = 0 and g2 = 8b0 and g3 = 128b1 and 128e0 = -g1 and 4096e1 = 128b1 + 31g1 and 16e2 = t0 - i1 and 128e3 = -120b0 - g0 and g1 >= 128b1 and t1 <= -1 + N - g0 and g0 >= 8b0 and i1 <= -1 + N and b0 <= 15 and b0 >= 0 and b1 <= 31 and b1 >= 0 and i1 <= 127 + g1 and t1 >= 0 and t1 <= 7 and i1 >= g1 and t0 >= 0 and t0 <= 15 and N >= 1)) or (exists (e0 = [(-g1)/128], e1 = [(128b1 + 31g1)/4096], e2 = [(t0 - i1)/16], e3 = [(-120b0 - g0)/128]: g4 = 0 and g2 = 8b0 and g3 = 128b1 and 128e0 = -g1 and 4096e1 = 128b1 + 31g1 and 16e2 = t0 - i1 and 128e3 = -120b0 - g0 and g0 >= 8b0 and t1 <= -1 + N - g0 and g1 >= 128b1 and i1 <= -1 + N and N >= 1 and t1 <= 7 and b1 <= 31 and b1 >= 0 and b0 <= 15 and b0 >= 0 and t0 <= 15 and i1 <= 127 + g1 and i1 >= g1 and t1 >= 0 and t0 >= 0)); S1[g0 + t1, i1] -> [-g1 + i1, t1, t0, t1] : exists (e0 = [(g4)/4], e1 = [(-g1)/128], e2 = [(128b1 + 31g1)/4096], e3 = [(t0 - i1)/16], e4 = [(-120b0 - g0)/128]: g3 = 128b1 and g2 = 8b0 and 4e0 = g4 and 128e1 = -g1 and 4096e2 = 128b1 + 31g1 and 16e3 = t0 - i1 and 128e4 = -120b0 - g0 and g0 >= 8b0 and t1 <= -1 + N - g0 and g1 >= 128b1 and i1 <= -1 + N and g4 <= -1 + N and t1 <= 7 and b1 <= 31 and b1 >= 0 and b0 <= 15 and b0 >= 0 and g4 >= 0 and i1 <= 127 + g1 and i1 >= g1 and t1 >= 0 and t0 >= 0 and t0 <= 15) } +[N, b0, b1, g0, g1, g2, g3, g4, t0, t1] -> { : exists (e0 = [(g0)/8], e1 = [(-128b1 + g1)/4096], e2 = [(8b0 - g0)/128]: g2 = 8b0 and g3 = 128b1 and 8e0 = g0 and 4096e1 = -128b1 + g1 and 128e2 = 8b0 - g0 and b0 >= 0 and g4 <= -1 + N and b0 <= 15 and g1 <= -1 + N and g4 >= 0 and b1 <= 31 and g0 <= -1 + N and g1 >= 128b1 and b1 >= 0 and g0 >= 8b0 and t0 >= 0 and t0 <= 15 and t1 >= 0 and t1 <= 15) } +[N, b0, b1, g0, g1, g2, g3, g4, t0, t1] -> { [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/no_lindep.c b/polly/lib/External/isl/test_inputs/codegen/cloog/no_lindep.c new file mode 100644 index 00000000000..1432b5e4e3c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/no_lindep.c @@ -0,0 +1 @@ +S1(N + 2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/no_lindep.in b/polly/lib/External/isl/test_inputs/codegen/cloog/no_lindep.in new file mode 100644 index 00000000000..078992925f7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/no_lindep.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[2 + N] -> [1 + M, N] } +[M, N] -> { : } +[M, N] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic1.c new file mode 100644 index 00000000000..9293aef92c7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic1.c @@ -0,0 +1,2 @@ +for (int c0 = 0; c0 <= M; c0 += 2) + S1(c0, c0 / 2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic1.in new file mode 100644 index 00000000000..e10488f68ef --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic1.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1] -> [i0, j, 0] : 2j = i0 and 2i1 = i0 and i0 >= 0 and i0 <= M } +[M] -> { : } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic2.c new file mode 100644 index 00000000000..2b7bb4d22c6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic2.c @@ -0,0 +1,5 @@ +for (int c0 = 2; c0 <= n; c0 += 2) { + if (c0 % 4 == 0) + S2(c0, c0 / 4); + S1(c0, c0 / 2); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic2.in new file mode 100644 index 00000000000..54f9374a5d3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_basic2.in @@ -0,0 +1,3 @@ +[n] -> { S2[i0, i1] -> [i0, j, 1] : 4j = i0 and 4i1 = i0 and i0 >= 1 and i0 <= n; S1[i0, i1] -> [i0, j, 0] : 2j = i0 and 2i1 = i0 and i0 >= 1 and i0 <= n } +[n] -> { : n >= 2 } +[n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_complex1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_complex1.c new file mode 100644 index 00000000000..7053351603e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_complex1.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= 5 * n; c0 += 1) + for (int c1 = max(-((5 * n - c0 + 1) % 2) - n + c0 + 1, 2 * floord(c0 - 1, 3) + 2); c1 <= min(c0, n + c0 - (n + c0 + 2) / 3); c1 += 2) + S1((3 * c1 / 2) - c0, c0 - c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_complex1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_complex1.in new file mode 100644 index 00000000000..277e62ef171 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_complex1.in @@ -0,0 +1,3 @@ +[n] -> { S1[i0, i1] -> [2i0 + 3i1, 2i0 + 2i1] : i0 >= 0 and i0 <= n and i1 >= 0 and i1 <= n } +[n] -> { : } +[n] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_lcpc.c b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_lcpc.c new file mode 100644 index 00000000000..e6f39682d49 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_lcpc.c @@ -0,0 +1,13 @@ +{ + for (int c0 = 1; c0 <= 6; c0 += 2) { + for (int c2 = 1; c2 <= c0; c2 += 1) { + S1(c0, (c0 - 1) / 2, c2); + S2(c0, (c0 - 1) / 2, c2); + } + for (int c2 = c0 + 1; c2 <= p; c2 += 1) + S1(c0, (c0 - 1) / 2, c2); + } + for (int c0 = 7; c0 <= m; c0 += 2) + for (int c2 = 1; c2 <= p; c2 += 1) + S1(c0, (c0 - 1) / 2, c2); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/nul_lcpc.in b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_lcpc.in new file mode 100644 index 00000000000..e3a4e99fcf3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/nul_lcpc.in @@ -0,0 +1,3 @@ +[m, n, p] -> { S1[i, k, j] -> [i, j', j, 0] : 2k = -1 + i and 2j' = -1 + i and i >= 1 and i <= m and j >= 1 and j <= p; S2[i, k, j] -> [i, j', j, 1] : 2k = -1 + i and 2j' = -1 + i and i >= 1 and i <= n and j >= 1 and j <= i } +[m, n, p] -> { : n = 6 and m >= 7 and p >= 7 } +[m, n, p] -> { [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/orc.c b/polly/lib/External/isl/test_inputs/codegen/cloog/orc.c new file mode 100644 index 00000000000..8ad0162832c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/orc.c @@ -0,0 +1,16 @@ +{ + for (int c1 = 0; c1 <= 2; c1 += 1) { + S1(c1); + for (int c2 = 0; c2 <= -c1 + 11; c2 += 1) { + S2(c1, c2); + S3(c1, c2); + } + S4(c1); + } + for (int c1 = 0; c1 <= 14; c1 += 1) { + S5(c1); + for (int c2 = 0; c2 <= 9; c2 += 1) + S6(c1, c2); + S7(c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/orc.in b/polly/lib/External/isl/test_inputs/codegen/cloog/orc.in new file mode 100644 index 00000000000..d81bf4728e9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/orc.in @@ -0,0 +1,3 @@ +{ S2[i0, i1] -> [0, 1 + 3i0, 2i1] : i0 >= 0 and i0 <= 2 and i1 >= 0 and i1 <= 11 - i0; S4[i0] -> [0, 2 + 3i0, 0] : i0 >= 0 and i0 <= 2; S5[i0] -> [2, 3i0, 0] : i0 >= 0 and i0 <= 14; S6[i0, i1] -> [2, 1 + 3i0, i1] : i0 >= 0 and i0 <= 14 and i1 >= 0 and i1 <= 9; S1[i0] -> [0, 3i0, 0] : i0 >= 0 and i0 <= 2; S7[i0] -> [2, 2 + 3i0, 0] : i0 >= 0 and i0 <= 14; S3[i0, i1] -> [0, 1 + 3i0, 1 + 2i1] : i0 >= 0 and i0 <= 2 and i1 >= 0 and i1 <= 11 - i0 } +{ : } +{ [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/otl.c b/polly/lib/External/isl/test_inputs/codegen/cloog/otl.c new file mode 100644 index 00000000000..793733447ee --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/otl.c @@ -0,0 +1,7 @@ +if (M >= 3 && N >= 4) + for (int c0 = 1; c0 < (2 * M + 2 * N - 2) / 5; c0 += 1) + for (int c1 = max(c0 - (M + 2) / 5, (c0 + 1) / 2); c1 <= min(min(c0, (M + 2 * N) / 5 - 1), (2 * N + 5 * c0 + 1) / 10); c1 += 1) + for (int c2 = max(max(max(max(0, c0 - c1 - 1), c1 - (N + 6) / 5 + 1), c0 - (M + N + 4) / 5 + 1), floord(-N + 5 * c0 - 3, 10) + 1); c2 <= min(min(min(c1, (M + N - 2) / 5), c0 - c1 + (N - 1) / 5 + 1), (N + 5 * c0 + 3) / 10); c2 += 1) + for (int c3 = max(max(max(c0, 2 * c1 - (2 * N + 5) / 5 + 1), c1 + c2 - (N + 3) / 5), 2 * c2 - (N + 2) / 5); c3 <= min(min(min(min(min(c0 + 1, c1 + c2 + 1), c1 + (M - 2) / 5 + 1), 2 * c2 + (N - 2) / 5 + 1), (2 * M + 2 * N - 1) / 5 - 1), c2 + (M + N) / 5); c3 += 1) + for (int c4 = max(max(max(max(c1, c0 - c2), c0 - (M + 6) / 5 + 1), c3 - (M + 2) / 5), (c3 + 1) / 2); c4 <= min(min(min(min(min(min(min(c0, c1 + 1), -c2 + c3 + (N - 1) / 5 + 1), c0 - c2 + N / 5 + 1), (M + 2 * N + 1) / 5 - 1), c2 + (N + 2) / 5), (2 * N + 5 * c0 + 3) / 10), (2 * N + 5 * c3 + 2) / 10); c4 += 1) + S1(c0, c1, c2, c3, c4, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/otl.in b/polly/lib/External/isl/test_inputs/codegen/cloog/otl.in new file mode 100644 index 00000000000..a6ad5d2fc58 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/otl.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1, i2, i3, i4, i2] -> [i0, i1, i2, i3, i4, i2] : 5i0 <= -7 + 2M + 2N and i4 >= i0 - i2 and 10i2 >= -2 - N + 5i0 and i2 >= -1 + i0 - i1 and 2i4 >= i0 and i0 >= 1 and i1 >= 1 and 2i1 >= i0 and i2 >= 0 and 5i2 >= 1 - M - N + 5i0 and 5i4 >= -1 - M + 5i0 and i3 >= i0 and 5i1 >= -2 - M + 5i0 and i3 >= 1 and 5i3 >= -3 - N + 5i1 + 5i2 and 5i2 <= 4 + N + 5i0 - 5i1 and i4 >= 1 and i2 <= i0 and 5i3 >= -2N + 10i1 and 5i1 <= -5 + M + 2N and 10i1 <= 1 + 2N + 5i0 and 5i2 >= -1 - N + 5i1 and i4 >= i1 and i3 >= i1 and i2 <= i1 and i1 <= i0 and 5i4 <= 4 + N - 5i2 + 5i3 and 5i4 <= 5 + N + 5i0 - 5i2 and 5i3 >= -2 - N + 10i2 and 5i2 <= -2 + M + N and 10i2 <= 3 + N + 5i0 and N >= 4 and i4 >= i2 and i3 >= i2 and M >= 3 and i4 <= i0 and 5i3 <= -6 + 2M + 2N and i4 >= -1 - i2 + i3 and 5i3 <= 3 + N + 10i2 and i3 <= 1 + i1 + i2 and i4 <= 1 + i1 and 2i4 >= i3 and 5i4 <= 2 + N + 5i2 and i3 <= 1 + 2i1 and i4 <= i3 and 5i3 <= M + N + 5i2 and 5i4 >= -2 - M + 5i3 and 10i4 <= 3 + 2N + 5i0 and i3 <= 1 + i0 and 5i3 <= 3 + M + 5i1 and 5i4 <= -4 + M + 2N and 10i4 <= 2 + 2N + 5i3 } +[M, N] -> { : M >= 1 and N >= 1 } +[M, N] -> { [i, j, k, l, m, n] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/param-split.c b/polly/lib/External/isl/test_inputs/codegen/cloog/param-split.c new file mode 100644 index 00000000000..e7774d55d1e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/param-split.c @@ -0,0 +1,6 @@ +for (int c0 = 0; c0 <= (M <= 0 ? 0 : M); c0 += 1) { + if (M >= c0) + S1(c0); + if (c0 == 0) + S2(0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/param-split.in b/polly/lib/External/isl/test_inputs/codegen/cloog/param-split.in new file mode 100644 index 00000000000..7b8a59e641e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/param-split.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0] -> [i0, 0] : i0 >= 0 and i0 <= M; S2[0] -> [0, 1] } +[M] -> { : } +[M] -> { [i, j] -> atomic[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/pouchet.c b/polly/lib/External/isl/test_inputs/codegen/cloog/pouchet.c new file mode 100644 index 00000000000..dc844442ca5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/pouchet.c @@ -0,0 +1,11 @@ +for (int c0 = 1; c0 <= floord(Ny, 2) + 2; c0 += 1) + for (int c1 = max(c0 - 1, c0 / 2 + 1); c1 <= min(c0, (Ny + 2 * c0) / 4); c1 += 1) { + if (Ny + 2 * c0 >= 4 * c1 + 1) { + for (int c2 = 1; c2 <= 2; c2 += 1) { + S1(c0 - c1, c1, 2 * c0 - 2 * c1, -2 * c0 + 4 * c1, c2); + S2(c0 - c1, c1, 2 * c0 - 2 * c1, -2 * c0 + 4 * c1 - 1, c2); + } + } else + for (int c2 = 1; c2 <= 2; c2 += 1) + S2((-Ny + 2 * c0) / 4, (Ny + 2 * c0) / 4, (-Ny / 2) + c0, Ny - 1, c2); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/pouchet.in b/polly/lib/External/isl/test_inputs/codegen/cloog/pouchet.in new file mode 100644 index 00000000000..95d59dc29da --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/pouchet.in @@ -0,0 +1,3 @@ +[Ny] -> { S1[i0, i1, 2i0, -2i0 + 2i1, i4] -> [i0 + i1, i1, i4, 2i0, -2i0 + 2i1, i4] : i0 >= 0 and i0 <= 1 and i1 >= 1 + i0 and 2i1 <= -1 + Ny + 2i0 and i4 >= 1 and i4 <= 2; S2[i0, i1, 2i0, -1 - 2i0 + 2i1, i4] -> [i0 + i1, i1, i4, 2i0, -2i0 + 2i1, 1 + i4] : i0 >= 0 and i0 <= 1 and i1 >= 1 + i0 and 2i1 <= Ny + 2i0 and i4 >= 1 and i4 <= 2 } +[Ny] -> { : } +[Ny] -> { [i, j, k, l, m, n] -> separate[x] : x >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/rectangle.c b/polly/lib/External/isl/test_inputs/codegen/cloog/rectangle.c new file mode 100644 index 00000000000..10d1f76c19d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/rectangle.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= 2 * n; c0 += 1) + for (int c1 = max(0, -n + c0); c1 <= min(n, c0); c1 += 1) + S1(c1, c0 - c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/rectangle.in b/polly/lib/External/isl/test_inputs/codegen/cloog/rectangle.in new file mode 100644 index 00000000000..fab0f945c37 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/rectangle.in @@ -0,0 +1,3 @@ +[n] -> { S1[i0, i1] -> [i0 + i1] : i0 >= 0 and i0 <= n and i1 >= 0 and i1 <= n } +[n] -> { : n >= 0 } +[n] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-QR.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-QR.c new file mode 100644 index 00000000000..253791a50b0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-QR.c @@ -0,0 +1,54 @@ +if (N >= 1) { + S1(0); + if (N == 1) { + for (int c3 = 0; c3 < M; c3 += 1) + S2(0, c3); + S3(0); + for (int c3 = 0; c3 < M; c3 += 1) + S4(0, c3); + S10(0); + S5(0); + } else { + for (int c3 = 0; c3 < M; c3 += 1) + S2(0, c3); + S3(0); + for (int c3 = 0; c3 < M; c3 += 1) + S4(0, c3); + S10(0); + S1(1); + S5(0); + } + for (int c1 = 2; c1 < N; c1 += 1) { + for (int c3 = c1 - 1; c3 < N; c3 += 1) { + S6(c1 - 2, c3); + for (int c5 = c1 - 2; c5 < M; c5 += 1) + S7(c1 - 2, c3, c5); + S8(c1 - 2, c3); + for (int c5 = c1 - 2; c5 < M; c5 += 1) + S9(c1 - 2, c3, c5); + } + for (int c3 = c1 - 1; c3 < M; c3 += 1) + S2(c1 - 1, c3); + S3(c1 - 1); + for (int c3 = c1 - 1; c3 < M; c3 += 1) + S4(c1 - 1, c3); + S10(c1 - 1); + S1(c1); + S5(c1 - 1); + } + if (N >= 2) { + S6(N - 2, N - 1); + for (int c5 = N - 2; c5 < M; c5 += 1) + S7(N - 2, N - 1, c5); + S8(N - 2, N - 1); + for (int c5 = N - 2; c5 < M; c5 += 1) + S9(N - 2, N - 1, c5); + for (int c3 = N - 1; c3 < M; c3 += 1) + S2(N - 1, c3); + S3(N - 1); + for (int c3 = N - 1; c3 < M; c3 += 1) + S4(N - 1, c3); + S10(N - 1); + S5(N - 1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-QR.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-QR.in new file mode 100644 index 00000000000..b81c03d7252 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-QR.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0] -> [0, i0, 5, 0, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N; S9[i0, i1, i2] -> [0, 2 + i0, 0, i1, 3, i2, 0] : i0 >= 0 and i1 >= 1 + i0 and i1 <= -1 + N and i2 >= i0 and i2 <= -1 + M; S10[i0] -> [0, 1 + i0, 4, 0, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N; S3[i0] -> [0, 1 + i0, 2, 0, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N; S6[i0, i1] -> [0, 2 + i0, 0, i1, 0, 0, 0] : i0 >= 0 and i1 >= 1 + i0 and i1 <= -1 + N; S8[i0, i1] -> [0, 2 + i0, 0, i1, 2, 0, 0] : i0 >= 0 and i1 >= 1 + i0 and i1 <= -1 + N; S2[i0, i1] -> [0, 1 + i0, 1, i1, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N and i1 >= i0 and i1 <= -1 + M; S4[i0, i1] -> [0, 1 + i0, 3, i1, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N and i1 >= i0 and i1 <= -1 + M; S7[i0, i1, i2] -> [0, 2 + i0, 0, i1, 1, i2, 0] : i0 >= 0 and i1 >= 1 + i0 and i1 <= -1 + N and i2 >= i0 and i2 <= -1 + M; S5[i0] -> [0, 1 + i0, 6, 0, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N } +[M, N] -> { : } +[M, N] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-bastoul3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-bastoul3.c new file mode 100644 index 00000000000..6d82ce4a89b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-bastoul3.c @@ -0,0 +1,3 @@ +for (int c0 = 3; c0 <= 9; c0 += 1) + for (int c1 = max(c0 - 6, -(c0 % 2) + 2); c1 <= min(3, c0 - 2); c1 += 2) + S1(c0, c1, (c0 - c1) / 2); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-bastoul3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-bastoul3.in new file mode 100644 index 00000000000..a6a4ffc9297 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-bastoul3.in @@ -0,0 +1,3 @@ +{ S1[i0, i1, i2] -> [i0, i1, k, 0] : 2k = i0 - i1 and 2i2 = i0 - i1 and i1 >= 1 and i1 <= 3 and i1 <= -2 + i0 and i1 >= -6 + i0 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-cholesky2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-cholesky2.c new file mode 100644 index 00000000000..4d1a9118bb9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-cholesky2.c @@ -0,0 +1,9 @@ +for (int c1 = 2; c1 < 3 * M; c1 += 1) { + if ((c1 - 2) % 3 == 0) + S1((c1 + 1) / 3); + for (int c3 = (c1 + 1) / 3 + 1; c3 <= min(M, c1 - 2); c3 += 1) + for (int c5 = -c3 + (c1 + c3 + 1) / 2 + 1; c5 <= min(c3, c1 - c3); c5 += 1) + S3(c1 - c3 - c5 + 1, c3, c5); + for (int c3 = -c1 + 2 * ((2 * c1 + 1) / 3) + 2; c3 <= min(M, c1); c3 += 2) + S2(((c1 - c3) / 2) + 1, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-cholesky2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-cholesky2.in new file mode 100644 index 00000000000..7f62b1f0264 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-cholesky2.in @@ -0,0 +1,3 @@ +[M] -> { S3[i0, i1, i2] -> [0, -1 + i0 + i1 + i2, 1, i1, 1, i2, 0] : i0 >= 1 and i1 <= M and i2 >= 1 + i0 and i2 <= i1; S2[i0, i1] -> [0, -2 + 2i0 + i1, 2, i1, 0, 0, 0] : i0 >= 1 and i1 >= 1 + i0 and i1 <= M; S1[i0] -> [0, -1 + 3i0, 0, 0, 0, 0, 0] : i0 >= 1 and i0 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion1.c new file mode 100644 index 00000000000..201ffee0bc3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion1.c @@ -0,0 +1,8 @@ +{ + for (int c1 = 0; c1 <= M; c1 += 1) + S1(c1); + for (int c1 = 1; c1 <= M; c1 += 1) + S2(c1); + for (int c1 = 0; c1 <= M; c1 += 1) + S3(c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion1.in new file mode 100644 index 00000000000..ca4282e49b3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion1.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0] -> [0, i0, 0] : i0 >= 0 and i0 <= M; S3[i0] -> [2, i0, 0] : i0 >= 0 and i0 <= M; S2[i0] -> [1, i0, 0] : i0 >= 1 and i0 <= M } +[M] -> { : M >= 1 } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion2.c new file mode 100644 index 00000000000..13c30301620 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion2.c @@ -0,0 +1,12 @@ +if (N >= 1) { + for (int c3 = 1; c3 <= M; c3 += 1) + S1(1, c3); + for (int c1 = 2; c1 <= N; c1 += 1) { + for (int c3 = 1; c3 <= M; c3 += 1) + S2(c1 - 1, c3); + for (int c3 = 1; c3 <= M; c3 += 1) + S1(c1, c3); + } + for (int c3 = 1; c3 <= M; c3 += 1) + S2(N, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion2.in new file mode 100644 index 00000000000..53905d8df35 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-fusion2.in @@ -0,0 +1,3 @@ +[M, N] -> { S2[i0, i1] -> [0, 1 + i0, 0, i1, 0] : i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= M; S1[i0, i1] -> [0, i0, 1, i1, 0] : i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= M } +[M, N] -> { : } +[M, N] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi2.c new file mode 100644 index 00000000000..407fc8b73e1 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi2.c @@ -0,0 +1,3 @@ +for (int c1 = 0; c1 < M; c1 += 1) + for (int c3 = 0; c3 < M; c3 += 1) + S1(c1, c3); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi2.in new file mode 100644 index 00000000000..ea86283a7b7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi2.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1] -> [0, i0, 0, i1, 0] : i0 >= 0 and i0 <= -1 + M and i1 >= 0 and i1 <= -1 + M } +[M] -> { : M >= 1 } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi3.c new file mode 100644 index 00000000000..1df9bb90c24 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi3.c @@ -0,0 +1,8 @@ +for (int c1 = 1; c1 <= M; c1 += 1) { + for (int c3 = 2; c3 < N; c3 += 1) + for (int c5 = 2; c5 < N; c5 += 1) + S1(c1, c3, c5); + for (int c3 = 2; c3 < N; c3 += 1) + for (int c5 = 2; c5 < N; c5 += 1) + S2(c1, c3, c5); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi3.in new file mode 100644 index 00000000000..4f5cc77904a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-jacobi3.in @@ -0,0 +1,3 @@ +[M, N] -> { S2[i0, i1, i2] -> [0, 1 + 2i0, 1, i1, 0, i2, 0] : i0 >= 1 and i0 <= M and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + N; S1[i0, i1, i2] -> [0, 2i0, 0, i1, 0, i2, 0] : i0 >= 1 and i0 <= M and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + N } +[M, N] -> { : } +[M, N] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam1.c new file mode 100644 index 00000000000..d8a80d66363 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam1.c @@ -0,0 +1,10 @@ +for (int c1 = -99; c1 <= 100; c1 += 1) { + if (c1 <= 0) + S1(1, -c1 + 1); + for (int c3 = max(1, -2 * c1 + 3); c3 <= min(199, -2 * c1 + 199); c3 += 2) { + S2(((c3 - 1) / 2) + c1, (c3 + 1) / 2); + S1(((c3 + 1) / 2) + c1, (c3 + 1) / 2); + } + if (c1 >= 1) + S2(100, -c1 + 101); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam1.in new file mode 100644 index 00000000000..b2338b0321b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam1.in @@ -0,0 +1,3 @@ +{ S2[i0, i1] -> [0, 1 + i0 - i1, 0, -1 + 2i1, 1] : i0 >= 1 and i0 <= 100 and i1 >= 1 and i1 <= 100; S1[i0, i1] -> [0, i0 - i1, 0, 2i1, 0] : i0 >= 1 and i0 <= 100 and i1 >= 1 and i1 <= 100 } +{ : } +{ [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam2.c new file mode 100644 index 00000000000..f3215bf69bd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam2.c @@ -0,0 +1,10 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) + S1(c1); + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 2; c3 <= N; c3 += 1) + S2(c1, c3); + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) + S3(c1, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam2.in new file mode 100644 index 00000000000..eb62bb7d009 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam2.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0] -> [0, i0, 0, 0, 0] : i0 >= 1 and i0 <= M; S2[i0, i1] -> [1, i0, 1, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 2 and i1 <= N; S3[i0, i1] -> [2, i0, 2, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= -1 + N } +[M, N] -> { : M >= 1 and N >= 1 } +[M, N] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam3.c new file mode 100644 index 00000000000..c786628d804 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam3.c @@ -0,0 +1,11 @@ +for (int c1 = 5; c1 <= 5 * M; c1 += 1) { + for (int c3 = max(2, floord(-M + c1, 4)); c3 < min(M, (c1 + 1) / 3 - 2); c3 += 1) + for (int c5 = max(1, -M - c3 + (M + c1) / 2 - 2); c5 < min(c3, -2 * c3 + (c1 + c3) / 2 - 2); c5 += 1) + S1(c1 - 2 * c3 - 2 * c5 - 5, c3, c5); + for (int c3 = max(1, floord(-M + c1, 4)); c3 < (c1 + 1) / 5; c3 += 1) + S2(c1 - 4 * c3 - 3, c3); + if (c1 % 5 == 0) + S4(c1 / 5); + for (int c3 = max(-3 * M - c1 + 3 * ((M + c1) / 2) + 1, -((c1 - 1) % 3) + 3); c3 < (c1 + 1) / 5; c3 += 3) + S3((c1 - 2 * c3 - 1) / 3, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam3.in new file mode 100644 index 00000000000..ebf78ae0b6b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam3.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1, i2] -> [0, 5 + i0 + 2i1 + 2i2, 0, i1, 0, i2, 0] : i0 <= M and i1 <= -1 + i0 and i2 >= 1 and i2 <= -1 + i1; S3[i0, i1] -> [0, 1 + 3i0 + 2i1, 2, i1, 0, 0, 0] : i0 <= M and i1 >= 1 and i1 <= -1 + i0; S2[i0, i1] -> [0, 3 + i0 + 4i1, 1, i1, 1, 0, 0] : i0 <= M and i1 >= 1 and i1 <= -1 + i0; S4[i0] -> [0, 5i0, 2, 0, 0, 0, 0] : i0 >= 1 and i0 <= M } +[M] -> { : M >= 1 } +[M] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam4.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam4.c new file mode 100644 index 00000000000..6a0b0badab6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam4.c @@ -0,0 +1,10 @@ +for (int c1 = 1; c1 < 2 * M - 1; c1 += 1) { + for (int c3 = max(-M + 1, -c1 + 1); c3 < 0; c3 += 1) { + for (int c7 = max(1, -M + c1 + 1); c7 <= min(M - 1, c1 + c3); c7 += 1) + S1(c7, c1 + c3 - c7, -c3); + for (int c5 = max(-M + c1 + 1, -c3); c5 < min(M, c1); c5 += 1) + S2(c1 - c5, c3 + c5, c5); + } + for (int c7 = max(1, -M + c1 + 1); c7 <= min(M - 1, c1); c7 += 1) + S1(c7, c1 - c7, 0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam4.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam4.in new file mode 100644 index 00000000000..1bb684f8e2b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam4.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1, i2] -> [0, i0 + i1 + i2, 0, -i2, 0, i2, 0] : i0 >= 1 and i0 <= -1 + M and i1 >= 0 and i2 >= 0 and i2 <= -1 + M - i1; S2[i0, i1, i2] -> [0, i0 + i2, 0, i1 - i2, 1, i2, 0] : i0 >= 1 and i0 <= -1 + M and i1 >= 0 and i2 >= 1 + i1 and i2 <= -1 + M } +[M] -> { : } +[M] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam5.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam5.c new file mode 100644 index 00000000000..f476185713c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam5.c @@ -0,0 +1,11 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S1(c1, c3); + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S2(c1, c3); + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S3(c1, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam5.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam5.in new file mode 100644 index 00000000000..2e2046f1db9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam5.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [1, i0, 0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M; S1[i0, i1] -> [0, i0, 0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M; S3[i0, i1] -> [2, i0, 0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam6.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam6.c new file mode 100644 index 00000000000..2cc512261d6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam6.c @@ -0,0 +1,8 @@ +{ + for (int c1 = 0; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S1(c1, c3); + for (int c1 = 0; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S2(c3, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam6.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam6.in new file mode 100644 index 00000000000..2699212b1df --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-lim-lam6.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [1, i1, 0, i0, 0] : i0 >= 1 and i0 <= M and i1 >= 0 and i1 <= M; S1[i0, i1] -> [0, i0, 0, i1, 0] : i0 >= 0 and i0 <= M and i1 >= 1 and i1 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.c new file mode 100644 index 00000000000..dfc7d37d901 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.c @@ -0,0 +1,17 @@ +if (M >= 0 && N >= 0) + for (int c1 = -4; c1 <= 3 * M + N; c1 += 1) { + if (3 * M + N >= c1 + 1 && c1 >= 3 * M) { + S2(M, -3 * M + c1); + } else if (3 * M >= c1 + 4 && (c1 - 2) % 3 == 0) + S1((c1 + 4) / 3, 0); + for (int c3 = max(-3 * M + c1 + 3, (c1 + 6) % 3); c3 <= min(N - 1, c1); c3 += 3) { + S2((c1 - c3) / 3, c3); + S1(((c1 - c3) / 3) + 1, c3 + 1); + } + if (c1 >= N && (N - c1) % 3 == 0) { + S2((-N + c1) / 3, N); + } else if (N >= c1 + 4 && c1 >= -3) + S1(0, c1 + 4); + for (int c3 = max(-3 * M + c1, (c1 + 6) % 3); c3 <= min(N, c1); c3 += 3) + S3((c1 - c3) / 3, c3); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.in new file mode 100644 index 00000000000..fd4dcc884f9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.in @@ -0,0 +1,3 @@ +[M, N] -> { S2[i0, i1] -> [0, 3i0 + i1, 0, i1, 0] : i0 >= 0 and i0 <= M and i1 >= 0 and i1 <= N; S3[i0, i1] -> [0, 3i0 + i1, 1, i1, 0] : i0 >= 0 and i0 <= M and i1 >= 0 and i1 <= N; S1[i0, i1] -> [0, -4 + 3i0 + i1, 0, i1, 0] : i0 >= 0 and i0 <= M and i1 >= 0 and i1 <= N } +[M, N] -> { : } +[M, N] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner3.c new file mode 100644 index 00000000000..d37df98b692 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner3.c @@ -0,0 +1,4 @@ +for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 2; c3 <= M + c1; c3 += 1) + for (int c5 = max(1, -c1 + c3); c5 <= min(M, c3 - 1); c5 += 1) + S1(c1, c5, c3 - c5); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner3.in new file mode 100644 index 00000000000..03731713ff7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner3.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1, i2] -> [0, i0, 0, i1 + i2, 0, i1, 0] : i0 <= M and i1 >= 1 and i1 <= M and i2 >= 1 and i2 <= i0 } +[M] -> { : } +[M] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner4.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner4.c new file mode 100644 index 00000000000..7a67212b2bb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner4.c @@ -0,0 +1,5 @@ +for (int c1 = 2; c1 <= 2 * M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + for (int c5 = 1; c5 <= M; c5 += 1) + for (int c7 = max(1, -M + c1); c7 <= min(M, c1 - 1); c7 += 1) + S1(c5, c3, c7, c1 - c7); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner4.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner4.in new file mode 100644 index 00000000000..1a8070210cd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner4.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1, i2, i3] -> [0, i2 + i3, 0, i1, 0, i0, 0, i2, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M and i2 >= 1 and i2 <= M and i3 >= 1 and i3 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m, n, o, p, q] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner5.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner5.c new file mode 100644 index 00000000000..c5f8fcc38e8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner5.c @@ -0,0 +1,5 @@ +for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + for (int c5 = 1; c5 <= M; c5 += 1) + for (int c7 = 1; c7 <= M; c7 += 1) + S1(c3, c5, c1, c7); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner5.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner5.in new file mode 100644 index 00000000000..9122fc0a626 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-loechner5.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1, i2, i3] -> [0, i2, 0, i0, 0, i1, 0, i3, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M and i2 >= 1 and i2 <= M and i3 >= 1 and i3 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m, n, o, p, q] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp.c new file mode 100644 index 00000000000..cff8f1724e3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp.c @@ -0,0 +1,85 @@ +{ + if (N >= 2) + for (int c1 = 1; c1 < O; c1 += 1) { + for (int c5 = 1; c5 <= M; c5 += 1) + S1(c1, 1, c5); + for (int c5 = 1; c5 < M; c5 += 1) { + S6(c1, 1, c5); + S7(c1, 1, c5); + } + if (N >= 3) { + for (int c5 = 1; c5 <= M; c5 += 1) + S3(c1, 1, c5); + for (int c5 = 1; c5 <= M; c5 += 1) + S1(c1, 2, c5); + for (int c5 = 1; c5 < M; c5 += 1) { + S6(c1, 2, c5); + S7(c1, 2, c5); + } + for (int c5 = 1; c5 < M; c5 += 1) + S11(c1, 1, c5); + } else { + for (int c5 = 1; c5 <= M; c5 += 1) + S3(c1, 1, c5); + for (int c5 = 1; c5 < M; c5 += 1) + S11(c1, 1, c5); + } + for (int c3 = 3; c3 < 2 * N - 4; c3 += 2) { + for (int c5 = 1; c5 < M; c5 += 1) + S10(c1, (c3 - 1) / 2, c5); + for (int c5 = 1; c5 <= M; c5 += 1) + S3(c1, (c3 + 1) / 2, c5); + for (int c5 = 1; c5 <= M; c5 += 1) + S1(c1, (c3 + 3) / 2, c5); + for (int c5 = 1; c5 < M; c5 += 1) { + S6(c1, (c3 + 3) / 2, c5); + S7(c1, (c3 + 3) / 2, c5); + } + for (int c5 = 1; c5 < M; c5 += 1) + S11(c1, (c3 + 1) / 2, c5); + } + if (N >= 3) { + for (int c5 = 1; c5 < M; c5 += 1) + S10(c1, N - 2, c5); + for (int c5 = 1; c5 <= M; c5 += 1) + S3(c1, N - 1, c5); + for (int c5 = 1; c5 < M; c5 += 1) + S11(c1, N - 1, c5); + } + for (int c5 = 1; c5 < M; c5 += 1) + S10(c1, N - 1, c5); + } + for (int c1 = 1; c1 < O; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) { + for (int c5 = 1; c5 <= M; c5 += 1) + S2(c1, c3, c5); + for (int c5 = 1; c5 < M; c5 += 1) + S8(c1, c3, c5); + for (int c5 = 1; c5 < M; c5 += 1) + S9(c1, c3, c5); + } + for (int c1 = 1; c1 < O; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) + for (int c5 = 1; c5 < M; c5 += 1) + S4(c1, c3, c5); + for (int c1 = 1; c1 < O; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) + for (int c5 = 1; c5 < M; c5 += 1) + S5(c1, c3, c5); + for (int c1 = R; c1 < O; c1 += 1) + for (int c3 = Q; c3 < N; c3 += 1) + for (int c5 = P; c5 < M; c5 += 1) + S12(c1, c3, c5); + for (int c1 = R; c1 < O; c1 += 1) + for (int c3 = Q; c3 < N; c3 += 1) + for (int c5 = 1; c5 < M; c5 += 1) + S13(c1, c3, c5); + for (int c1 = R; c1 < O; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) + for (int c5 = P; c5 < M; c5 += 1) + S14(c1, c3, c5); + for (int c1 = R; c1 < O; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) + for (int c5 = 1; c5 < M; c5 += 1) + S15(c1, c3, c5); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp.in new file mode 100644 index 00000000000..b7fdb69788c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp.in @@ -0,0 +1,3 @@ +[M, N, O, P, Q, R, S, T, U] -> { S8[i0, i1, i2] -> [1, i0, 0, 2i1, 1, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S11[i0, i1, i2] -> [0, i0, 0, 2i1, 4, i2, 1] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S6[i0, i1, i2] -> [0, i0, 0, -2 + 2i1, 2, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S9[i0, i1, i2] -> [1, i0, 0, 1 + 2i1, 3, i2, 1] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S1[i0, i1, i2] -> [0, i0, 0, -3 + 2i1, 2, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S4[i0, i1, i2] -> [2, i0, 0, i1, 1, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S2[i0, i1, i2] -> [1, i0, 0, 2i1, 0, i2, 1] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S7[i0, i1, i2] -> [0, i0, 0, -2 + 2i1, 2, i2, 1] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S10[i0, i1, i2] -> [0, i0, 0, 1 + 2i1, 0, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S3[i0, i1, i2] -> [0, i0, 0, -1 + 2i1, 1, i2, 2] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S15[i0, i1, i2] -> [7, i0, 1, i1, 1, i2, 0] : i0 >= R and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S5[i0, i1, i2] -> [3, i0, 0, i1, 1, i2, 1] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S13[i0, i1, i2] -> [5, i0, 0, i1, 1, i2, 0] : i0 >= R and i0 <= -1 + O and i1 >= Q and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S12[i0, i1, i2] -> [4, i0, 0, i1, 0, i2, 0] : i0 >= R and i0 <= -1 + O and i1 >= Q and i1 <= -1 + N and i2 >= P and i2 <= -1 + M; S14[i0, i1, i2] -> [6, i0, 1, i1, 0, i2, 0] : i0 >= R and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= P and i2 <= -1 + M } +[M, N, O, P, Q, R, S, T, U] -> { : } +[M, N, O, P, Q, R, S, T, U] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp2.c new file mode 100644 index 00000000000..98cd4b0707a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp2.c @@ -0,0 +1,18 @@ +{ + for (int c1 = 1; c1 < O; c1 += 1) + for (int c3 = Q; c3 < N; c3 += 1) + for (int c5 = P; c5 < M; c5 += 1) + S1(c1, c3, c5); + for (int c1 = 1; c1 < O; c1 += 1) + for (int c3 = Q; c3 < N; c3 += 1) + for (int c5 = 1; c5 < M; c5 += 1) + S2(c1, c3, c5); + for (int c1 = 1; c1 < O; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) + for (int c5 = P; c5 < M; c5 += 1) + S3(c1, c3, c5); + for (int c1 = 1; c1 < O; c1 += 1) + for (int c3 = 1; c3 < N; c3 += 1) + for (int c5 = 1; c5 < M; c5 += 1) + S4(c1, c3, c5); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp2.in new file mode 100644 index 00000000000..8a5dfb12d5a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-interp2.in @@ -0,0 +1,3 @@ +[M, N, O, P, Q, R, S, T, U] -> { S1[i0, i1, i2] -> [0, i0, 0, i1, 0, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= Q and i1 <= -1 + N and i2 >= P and i2 <= -1 + M; S4[i0, i1, i2] -> [3, i0, 1, i1, 1, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S2[i0, i1, i2] -> [1, i0, 0, i1, 1, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= Q and i1 <= -1 + N and i2 >= 1 and i2 <= -1 + M; S3[i0, i1, i2] -> [2, i0, 1, i1, 0, i2, 0] : i0 >= 1 and i0 <= -1 + O and i1 >= 1 and i1 <= -1 + N and i2 >= P and i2 <= -1 + M } +[M, N, O, P, Q, R, S, T, U] -> { : } +[M, N, O, P, Q, R, S, T, U] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-psinv.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-psinv.c new file mode 100644 index 00000000000..e3a5deeb1e7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-psinv.c @@ -0,0 +1,9 @@ +for (int c1 = 2; c1 < O; c1 += 1) + for (int c3 = 3; c3 < 2 * N - 2; c3 += 2) { + for (int c5 = 1; c5 <= M; c5 += 1) { + S1(c1, (c3 + 1) / 2, c5); + S2(c1, (c3 + 1) / 2, c5); + } + for (int c5 = 2; c5 < M; c5 += 1) + S3(c1, (c3 + 1) / 2, c5); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-psinv.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-psinv.in new file mode 100644 index 00000000000..835f81a4725 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-psinv.in @@ -0,0 +1,3 @@ +[M, N, O] -> { S1[i0, i1, i2] -> [0, i0, 0, -1 + 2i1, 0, i2, 0] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S2[i0, i1, i2] -> [0, i0, 0, -1 + 2i1, 0, i2, 1] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S3[i0, i1, i2] -> [0, i0, 0, 2i1, 1, i2, 0] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + M } +[M, N, O] -> { : } +[M, N, O] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-resid.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-resid.c new file mode 100644 index 00000000000..e3a5deeb1e7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-resid.c @@ -0,0 +1,9 @@ +for (int c1 = 2; c1 < O; c1 += 1) + for (int c3 = 3; c3 < 2 * N - 2; c3 += 2) { + for (int c5 = 1; c5 <= M; c5 += 1) { + S1(c1, (c3 + 1) / 2, c5); + S2(c1, (c3 + 1) / 2, c5); + } + for (int c5 = 2; c5 < M; c5 += 1) + S3(c1, (c3 + 1) / 2, c5); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-resid.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-resid.in new file mode 100644 index 00000000000..835f81a4725 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-resid.in @@ -0,0 +1,3 @@ +[M, N, O] -> { S1[i0, i1, i2] -> [0, i0, 0, -1 + 2i1, 0, i2, 0] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S2[i0, i1, i2] -> [0, i0, 0, -1 + 2i1, 0, i2, 1] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S3[i0, i1, i2] -> [0, i0, 0, 2i1, 1, i2, 0] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + M } +[M, N, O] -> { : } +[M, N, O] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-rprj3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-rprj3.c new file mode 100644 index 00000000000..992bfd53f02 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-rprj3.c @@ -0,0 +1,33 @@ +if (M >= 2 && N >= 3) + for (int c1 = 2; c1 < O; c1 += 1) { + for (int c5 = 2; c5 <= M; c5 += 1) + S1(c1, 2, c5); + for (int c3 = 3; c3 < N; c3 += 1) { + for (int c5 = 2; c5 <= M; c5 += 1) + S2(c1, c3 - 1, c5); + if (M >= 3) { + S4(c1, c3 - 1, 2); + for (int c5 = 2; c5 < M - 1; c5 += 1) { + S3(c1, c3 - 1, c5); + S5(c1, c3 - 1, c5); + S4(c1, c3 - 1, c5 + 1); + } + S3(c1, c3 - 1, M - 1); + S5(c1, c3 - 1, M - 1); + } + for (int c5 = 2; c5 <= M; c5 += 1) + S1(c1, c3, c5); + } + for (int c5 = 2; c5 <= M; c5 += 1) + S2(c1, N - 1, c5); + if (M >= 3) { + S4(c1, N - 1, 2); + for (int c5 = 2; c5 < M - 1; c5 += 1) { + S3(c1, N - 1, c5); + S5(c1, N - 1, c5); + S4(c1, N - 1, c5 + 1); + } + S3(c1, N - 1, M - 1); + S5(c1, N - 1, M - 1); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-rprj3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-rprj3.in new file mode 100644 index 00000000000..03f4134661f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-mg-rprj3.in @@ -0,0 +1,3 @@ +[M, N, O, P, Q, R] -> { S1[i0, i1, i2] -> [0, i0, 0, i1, 2, i2, 0] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= M; S4[i0, i1, i2] -> [0, i0, 0, 1 + i1, 1, -1 + i2, 2] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + M; S3[i0, i1, i2] -> [0, i0, 0, 1 + i1, 1, i2, 0] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + M; S5[i0, i1, i2] -> [0, i0, 0, 1 + i1, 1, i2, 1] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + M; S2[i0, i1, i2] -> [0, i0, 0, 1 + i1, 0, i2, 1] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= M } +[M, N, O, P, Q, R] -> { : } +[M, N, O, P, Q, R] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali1.c new file mode 100644 index 00000000000..7268c23d080 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali1.c @@ -0,0 +1,7 @@ +for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 < 2 * N; c3 += 1) { + for (int c5 = max(1, -N + c3); c5 < (c3 + 1) / 2; c5 += 1) + S1(c1, c3 - c5, c5); + if ((c3 - 1) % 2 == 0) + S2(c1, (c3 + 1) / 2); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali1.in new file mode 100644 index 00000000000..ecbb320de01 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali1.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1, i2] -> [0, i0, 0, i1 + i2, 0, i2, 0] : i0 >= 1 and i0 <= M and i1 <= N and i2 >= 1 and i2 <= -1 + i1; S2[i0, i1] -> [0, i0, 0, -1 + 2i1, 1, 0, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= N } +[M, N] -> { : } +[M, N] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali2.c new file mode 100644 index 00000000000..a407cad52d2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali2.c @@ -0,0 +1,8 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S1(c1, c3); + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S2(c1, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali2.in new file mode 100644 index 00000000000..9ba248fb0fc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali2.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [1, i0, 1, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M; S1[i0, i1] -> [0, i0, 0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali3.c new file mode 100644 index 00000000000..c281b826e01 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali3.c @@ -0,0 +1,9 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S1(c1, c3); + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + for (int c5 = 1; c5 <= M; c5 += 1) + S2(c1, c3, c5); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali3.in new file mode 100644 index 00000000000..70da8ea5c11 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali3.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1, i2] -> [1, i0, 0, i1, 1, i2, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M and i2 >= 1 and i2 <= M; S1[i0, i1] -> [0, i0, 0, i1, 0, 0, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali4.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali4.c new file mode 100644 index 00000000000..a407cad52d2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali4.c @@ -0,0 +1,8 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S1(c1, c3); + for (int c1 = 1; c1 <= M; c1 += 1) + for (int c3 = 1; c3 <= M; c3 += 1) + S2(c1, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali4.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali4.in new file mode 100644 index 00000000000..e975faef4c7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali4.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [1, i0, 0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M; S1[i0, i1] -> [0, i0, 0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M } +[M] -> { : M >= 2 } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali5.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali5.c new file mode 100644 index 00000000000..51f2f0c154e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali5.c @@ -0,0 +1,10 @@ +for (int c1 = 3; c1 < 2 * M; c1 += 1) { + for (int c3 = c1 / 2 + 2; c3 <= M; c3 += 1) + for (int c7 = c1 / 2 + 1; c7 < min(c1, c3); c7 += 1) + S1(c7, c1 - c7, c3); + for (int c3 = max(1, -M + c1); c3 < (c1 + 1) / 2; c3 += 1) + S2(c1 - c3, c3); + for (int c3 = c1 / 2 + 2; c3 <= M; c3 += 1) + for (int c7 = c1 / 2 + 1; c7 < min(c1, c3); c7 += 1) + S3(c7, c1 - c7, c3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali5.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali5.in new file mode 100644 index 00000000000..1b77acdc8d6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali5.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1, i2] -> [0, i0 + i1, 0, i2, 0, i2, 0] : i1 >= 1 and i1 <= -1 + i0 and i2 >= 1 + i0 and i2 <= M; S3[i0, i1, i2] -> [0, i0 + i1, 2, i2, 2, i2, 0] : i1 >= 1 and i1 <= -1 + i0 and i2 >= 1 + i0 and i2 <= M; S2[i0, i1] -> [0, i0 + i1, 1, i1, 1, 0, 0] : i0 <= M and i1 >= 1 and i1 <= -1 + i0 } +[M] -> { : } +[M] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali6.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali6.c new file mode 100644 index 00000000000..1df9bb90c24 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali6.c @@ -0,0 +1,8 @@ +for (int c1 = 1; c1 <= M; c1 += 1) { + for (int c3 = 2; c3 < N; c3 += 1) + for (int c5 = 2; c5 < N; c5 += 1) + S1(c1, c3, c5); + for (int c3 = 2; c3 < N; c3 += 1) + for (int c5 = 2; c5 < N; c5 += 1) + S2(c1, c3, c5); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali6.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali6.in new file mode 100644 index 00000000000..7a08ca76e8e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-pingali6.in @@ -0,0 +1,3 @@ +[M, N] -> { S2[i0, i1, i2] -> [0, 1 + 2i0, 1, i1, 0, i2, 0] : i0 >= 1 and i0 <= M and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + N; S1[i0, i1, i2] -> [0, 2i0, 0, i1, 0, i2, 0] : i0 >= 1 and i0 <= M and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + N } +[M, N] -> { : M >= 1 and N >= 1 } +[M, N] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride.c new file mode 100644 index 00000000000..104e2620fdd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride.c @@ -0,0 +1,2 @@ +for (int c1 = 2; c1 <= M; c1 += 7) + S1(c1, (c1 - 2) / 7); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride.in new file mode 100644 index 00000000000..46a1c35375e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1] -> [0, i0, 0, 0, 0] : 7i1 = -2 + i0 and i0 >= 2 and i0 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride2.c new file mode 100644 index 00000000000..104e2620fdd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride2.c @@ -0,0 +1,2 @@ +for (int c1 = 2; c1 <= M; c1 += 7) + S1(c1, (c1 - 2) / 7); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride2.in new file mode 100644 index 00000000000..be6b1978a4b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-stride2.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0, i1] -> [0, i0, 0, 0, 0] : 7i1 = -2 + i0 and i0 >= 0 and i0 <= M } +[M] -> { : } +[M] -> { [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-tang-xue1.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-tang-xue1.c new file mode 100644 index 00000000000..8874eabfceb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-tang-xue1.c @@ -0,0 +1,5 @@ +for (int c1 = 0; c1 <= 9; c1 += 2) + for (int c3 = 0; c3 <= min(4, c1 + 3); c3 += 2) + for (int c5 = max(1, c1); c5 <= min(c1 + 1, c1 - c3 + 4); c5 += 1) + for (int c7 = max(1, -c1 + c3 + c5); c7 <= min(4, -c1 + c3 + c5 + 1); c7 += 1) + S1(c1 / 2, (-c1 + c3) / 2, -c1 + c5, -c3 + c7); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-tang-xue1.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-tang-xue1.in new file mode 100644 index 00000000000..0c9ffc9f77f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-tang-xue1.in @@ -0,0 +1,3 @@ +{ S1[i0, i1, i2, i3] -> [0, 2i0, 0, 2i0 + 2i1, 0, 2i0 + i2, 0, 2i0 + 2i1 + i3, 0] : i3 <= 4 - 2i0 - 2i1 and i3 >= i2 and i2 <= 9 - 2i0 and i2 >= 0 and i2 >= 1 - 2i0 and i3 <= 1 + i2 and i2 <= 1 and i3 >= 1 - 2i0 - 2i1 } +{ : } +{ [i, j, k, l, m, n, o, p, q] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-two.c b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-two.c new file mode 100644 index 00000000000..3946c423f15 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-two.c @@ -0,0 +1 @@ +S1(1, 1, 5); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-two.in b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-two.in new file mode 100644 index 00000000000..a7eb204753b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-two.in @@ -0,0 +1,3 @@ +{ S1[i0, i1, i2] -> [i0, j, k, 0] : 2i1 = 3 - i0 and 2j = 3 - i0 and 2k = 9 + i0 and 2i2 = 9 + i0 and i0 >= 0 and i0 <= 1 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/singleton.c b/polly/lib/External/isl/test_inputs/codegen/cloog/singleton.c new file mode 100644 index 00000000000..0023bc6cd9a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/singleton.c @@ -0,0 +1,4 @@ +{ + S2(); + S1(); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/singleton.in b/polly/lib/External/isl/test_inputs/codegen/cloog/singleton.in new file mode 100644 index 00000000000..a0a5a8a1dde --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/singleton.in @@ -0,0 +1,3 @@ +{ S2[] -> [-1]; S1[] -> [0] } +{ : } +{ [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/square+triangle-1-1-2-3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/square+triangle-1-1-2-3.c new file mode 100644 index 00000000000..316213f18f1 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/square+triangle-1-1-2-3.c @@ -0,0 +1,9 @@ +for (int c0 = 1; c0 <= M; c0 += 1) { + S1(c0, 1); + for (int c1 = 2; c1 <= c0; c1 += 1) { + S1(c0, c1); + S2(c0, c1); + } + for (int c1 = c0 + 1; c1 <= M; c1 += 1) + S1(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/square+triangle-1-1-2-3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/square+triangle-1-1-2-3.in new file mode 100644 index 00000000000..028c792b640 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/square+triangle-1-1-2-3.in @@ -0,0 +1,3 @@ +[M] -> { S2[i0, i1] -> [i0, i1, 1] : i1 >= 2 and i1 <= i0 and i0 <= M; S1[i0, i1] -> [i0, i1, 0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= M } +[M] -> { : M >= 1 } +[M] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride.c b/polly/lib/External/isl/test_inputs/codegen/cloog/stride.c new file mode 100644 index 00000000000..9bd4ddfb307 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride.c @@ -0,0 +1,7 @@ +{ + for (int c0 = 3; c0 <= 24; c0 += 3) + S2(c0, c0 / 3); + S1(25); + for (int c0 = 27; c0 <= 100; c0 += 3) + S2(c0, c0 / 3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride.in b/polly/lib/External/isl/test_inputs/codegen/cloog/stride.in new file mode 100644 index 00000000000..410c6843527 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride.in @@ -0,0 +1,3 @@ +{ S1[25] -> [25, 0]; S2[i0, i1] -> [i0, j] : 3i1 = i0 and 3j = i0 and i0 >= 3 and i0 <= 100 } +{ : } +{ [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/stride2.c new file mode 100644 index 00000000000..c56af8e749e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride2.c @@ -0,0 +1,8 @@ +{ + for (int c0 = 3; c0 <= 26; c0 += 3) + S2(c0, c0 / 3); + S1(27); + S2(27, 9); + for (int c0 = 30; c0 <= 100; c0 += 3) + S2(c0, c0 / 3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/stride2.in new file mode 100644 index 00000000000..97e40866adf --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride2.in @@ -0,0 +1,3 @@ +{ S1[27] -> [27, 0]; S2[i0, i1] -> [i0, j] : 3i1 = i0 and 3j = i0 and i0 >= 3 and i0 <= 100 } +{ : } +{ [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/stride3.c new file mode 100644 index 00000000000..d145938b663 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride3.c @@ -0,0 +1,2 @@ +for (int c0 = max(1, m); c0 <= n; c0 += 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/stride3.in new file mode 100644 index 00000000000..9b87b899243 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride3.in @@ -0,0 +1,3 @@ +[m, n] -> { S1[i0] -> [50i0, 0] : i0 >= 1 and i0 <= n and i0 >= m } +[m, n] -> { : } +[m, n] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride4.c b/polly/lib/External/isl/test_inputs/codegen/cloog/stride4.c new file mode 100644 index 00000000000..03908e60c07 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride4.c @@ -0,0 +1,3 @@ +if (t >= 0 && t <= 15) + for (int c0 = t; c0 <= 99; c0 += 16) + S1(c0, t); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/stride4.in b/polly/lib/External/isl/test_inputs/codegen/cloog/stride4.in new file mode 100644 index 00000000000..436cad3c5a5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/stride4.in @@ -0,0 +1,3 @@ +[t] -> { S1[i0, t] -> [i0, t, 0] : exists (e0 = [(t - i0)/16]: 16e0 = t - i0 and i0 >= 0 and i0 <= 99 and t >= 0 and t <= 15) } +[t] -> { : } +[t] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/swim.c b/polly/lib/External/isl/test_inputs/codegen/cloog/swim.c new file mode 100644 index 00000000000..47b4ebe5ff8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/swim.c @@ -0,0 +1,159 @@ +if (M == 1) { + S1(); + S2(); + S3(); + S4(); + S5(); + S6(); + S7(); + S8(); + S9(); + S10(); + S11(); + S12(); + S13(); + S14(); + S15(); + S16(); + S17(); + S18(); + S19(); + S20(); + S21(); + S22(); + S23(); + S24(); + S25(); + S26(); + S27(); + for (int c1 = 1; c1 <= N; c1 += 1) { + for (int c3 = 1; c3 <= N; c3 += 1) { + S28(c1, c3); + S29(c1, c3); + S30(c1, c3); + } + S31(c1); + } + S32(); + S33(); + S34(); + if (O <= 1) + S35(); + S36(); + S37(); + for (int c1 = 2; c1 <= P; c1 += 1) { + S38(c1); + S39(c1); + for (int c3 = 1; c3 <= Q; c3 += 1) + for (int c5 = 1; c5 <= R; c5 += 1) { + S40(c1, c3, c5); + S41(c1, c3, c5); + S42(c1, c3, c5); + S43(c1, c3, c5); + } + for (int c3 = 1; c3 <= Q; c3 += 1) { + S44(c1, c3); + S45(c1, c3); + S46(c1, c3); + S47(c1, c3); + } + for (int c3 = 1; c3 <= R; c3 += 1) { + S48(c1, c3); + S49(c1, c3); + S50(c1, c3); + S51(c1, c3); + } + S52(c1); + S53(c1); + S54(c1); + S55(c1); + S56(c1); + S57(c1); + S58(c1); + for (int c3 = 1; c3 <= Q; c3 += 1) + for (int c5 = 1; c5 <= R; c5 += 1) { + S59(c1, c3, c5); + S60(c1, c3, c5); + S61(c1, c3, c5); + } + for (int c3 = 1; c3 <= Q; c3 += 1) { + S62(c1, c3); + S63(c1, c3); + S64(c1, c3); + } + for (int c3 = 1; c3 <= R; c3 += 1) { + S65(c1, c3); + S66(c1, c3); + S67(c1, c3); + } + S68(c1); + S69(c1); + S70(c1); + S71(c1); + S72(c1); + S73(c1); + S74(c1); + S75(c1); + S76(c1); + S77(c1); + S78(c1); + S79(c1); + S80(c1); + S81(c1); + S82(c1); + S83(c1); + S84(c1); + S85(c1); + S86(c1); + S87(c1); + S88(c1); + S89(c1); + S90(c1); + S91(c1); + S92(c1); + S93(c1); + S94(c1); + for (int c3 = 1; c3 <= N; c3 += 1) { + for (int c5 = 1; c5 <= N; c5 += 1) { + S95(c1, c3, c5); + S96(c1, c3, c5); + S97(c1, c3, c5); + } + S98(c1, c3); + } + S99(c1); + S100(c1); + S101(c1); + for (int c3 = 1; c3 <= Q; c3 += 1) + for (int c5 = 1; c5 <= R; c5 += 1) { + S102(c1, c3, c5); + S103(c1, c3, c5); + S104(c1, c3, c5); + S105(c1, c3, c5); + S106(c1, c3, c5); + S107(c1, c3, c5); + } + for (int c3 = 1; c3 <= Q; c3 += 1) { + S108(c1, c3); + S109(c1, c3); + S110(c1, c3); + S111(c1, c3); + S112(c1, c3); + S113(c1, c3); + } + for (int c3 = 1; c3 <= R; c3 += 1) { + S114(c1, c3); + S115(c1, c3); + S116(c1, c3); + S117(c1, c3); + S118(c1, c3); + S119(c1, c3); + } + S120(c1); + S121(c1); + S122(c1); + S123(c1); + S124(c1); + S125(c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/swim.in b/polly/lib/External/isl/test_inputs/codegen/cloog/swim.in new file mode 100644 index 00000000000..4661ff0cff2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/swim.in @@ -0,0 +1,3 @@ +[M, N, O, P, Q, R] -> { S84[i0] -> [34, i0, 31, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S6[] -> [5, 0, 0, 0, 0, 0, 0] : M = 1; S25[] -> [24, 0, 0, 0, 0, 0, 0] : M = 1; S115[i0, i1] -> [34, i0, 48, i1, 1, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S64[i0, i1] -> [34, i0, 13, i1, 2, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S62[i0, i1] -> [34, i0, 13, i1, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S40[i0, i1, i2] -> [34, i0, 2, i1, 0, i2, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S123[i0] -> [34, i0, 52, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S5[] -> [4, 0, 0, 0, 0, 0, 0] : M = 1; S15[] -> [14, 0, 0, 0, 0, 0, 0] : M = 1; S76[i0] -> [34, i0, 23, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S39[i0] -> [34, i0, 1, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S13[] -> [12, 0, 0, 0, 0, 0, 0] : M = 1; S28[i0, i1] -> [27, i0, 0, i1, 0, 0, 0] : M = 1 and i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= N; S70[i0] -> [34, i0, 17, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S53[i0] -> [34, i0, 6, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S121[i0] -> [34, i0, 50, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S47[i0, i1] -> [34, i0, 3, i1, 3, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S59[i0, i1, i2] -> [34, i0, 12, i1, 0, i2, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S71[i0] -> [34, i0, 18, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S77[i0] -> [34, i0, 24, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S63[i0, i1] -> [34, i0, 13, i1, 1, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S51[i0, i1] -> [34, i0, 4, i1, 3, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S100[i0] -> [34, i0, 44, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S22[] -> [21, 0, 0, 0, 0, 0, 0] : M = 1; S95[i0, i1, i2] -> [34, i0, 42, i1, 0, i2, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= N and i2 >= 1 and i2 <= N; S8[] -> [7, 0, 0, 0, 0, 0, 0] : M = 1; S120[i0] -> [34, i0, 49, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S50[i0, i1] -> [34, i0, 4, i1, 2, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S45[i0, i1] -> [34, i0, 3, i1, 1, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S72[i0] -> [34, i0, 19, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S52[i0] -> [34, i0, 5, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S7[] -> [6, 0, 0, 0, 0, 0, 0] : M = 1; S78[i0] -> [34, i0, 25, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S110[i0, i1] -> [34, i0, 47, i1, 2, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S124[i0] -> [34, i0, 53, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S60[i0, i1, i2] -> [34, i0, 12, i1, 0, i2, 1] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S27[] -> [26, 0, 0, 0, 0, 0, 0] : M = 1; S114[i0, i1] -> [34, i0, 48, i1, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S49[i0, i1] -> [34, i0, 4, i1, 1, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S94[i0] -> [34, i0, 41, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S57[i0] -> [34, i0, 10, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S66[i0, i1] -> [34, i0, 14, i1, 1, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S18[] -> [17, 0, 0, 0, 0, 0, 0] : M = 1; S92[i0] -> [34, i0, 39, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S3[] -> [2, 0, 0, 0, 0, 0, 0] : M = 1; S35[] -> [31, 0, 0, 0, 0, 0, 0] : M = 1 and O <= 1; S36[] -> [32, 0, 0, 0, 0, 0, 0] : M = 1; S10[] -> [9, 0, 0, 0, 0, 0, 0] : M = 1; S2[] -> [1, 0, 0, 0, 0, 0, 0] : M = 1; S48[i0, i1] -> [34, i0, 4, i1, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S30[i0, i1] -> [27, i0, 0, i1, 2, 0, 0] : M = 1 and i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= N; S75[i0] -> [34, i0, 22, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S83[i0] -> [34, i0, 30, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S87[i0] -> [34, i0, 34, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S88[i0] -> [34, i0, 35, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S33[] -> [29, 0, 0, 0, 0, 0, 0] : M = 1; S101[i0] -> [34, i0, 45, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S21[] -> [20, 0, 0, 0, 0, 0, 0] : M = 1; S32[] -> [28, 0, 0, 0, 0, 0, 0] : M = 1; S118[i0, i1] -> [34, i0, 48, i1, 4, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S79[i0] -> [34, i0, 26, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S38[i0] -> [34, i0, 0, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S108[i0, i1] -> [34, i0, 47, i1, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S65[i0, i1] -> [34, i0, 14, i1, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S91[i0] -> [34, i0, 38, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S17[] -> [16, 0, 0, 0, 0, 0, 0] : M = 1; S80[i0] -> [34, i0, 27, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S54[i0] -> [34, i0, 7, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S46[i0, i1] -> [34, i0, 3, i1, 2, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S68[i0] -> [34, i0, 15, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S116[i0, i1] -> [34, i0, 48, i1, 2, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S43[i0, i1, i2] -> [34, i0, 2, i1, 0, i2, 3] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S26[] -> [25, 0, 0, 0, 0, 0, 0] : M = 1; S31[i0] -> [27, i0, 1, 0, 0, 0, 0] : M = 1 and i0 >= 1 and i0 <= N; S69[i0] -> [34, i0, 16, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S24[] -> [23, 0, 0, 0, 0, 0, 0] : M = 1; S90[i0] -> [34, i0, 37, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S89[i0] -> [34, i0, 36, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S82[i0] -> [34, i0, 29, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S67[i0, i1] -> [34, i0, 14, i1, 2, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S58[i0] -> [34, i0, 11, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S109[i0, i1] -> [34, i0, 47, i1, 1, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S122[i0] -> [34, i0, 51, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S61[i0, i1, i2] -> [34, i0, 12, i1, 0, i2, 2] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S1[] -> [0, 0, 0, 0, 0, 0, 0] : M = 1; S4[] -> [3, 0, 0, 0, 0, 0, 0] : M = 1; S86[i0] -> [34, i0, 33, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S14[] -> [13, 0, 0, 0, 0, 0, 0] : M = 1; S93[i0] -> [34, i0, 40, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S56[i0] -> [34, i0, 9, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S37[] -> [33, 0, 0, 0, 0, 0, 0] : M = 1; S125[i0] -> [34, i0, 54, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S96[i0, i1, i2] -> [34, i0, 42, i1, 0, i2, 1] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= N and i2 >= 1 and i2 <= N; S9[] -> [8, 0, 0, 0, 0, 0, 0] : M = 1; S41[i0, i1, i2] -> [34, i0, 2, i1, 0, i2, 1] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S102[i0, i1, i2] -> [34, i0, 46, i1, 0, i2, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S112[i0, i1] -> [34, i0, 47, i1, 4, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S16[] -> [15, 0, 0, 0, 0, 0, 0] : M = 1; S85[i0] -> [34, i0, 32, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S42[i0, i1, i2] -> [34, i0, 2, i1, 0, i2, 2] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S12[] -> [11, 0, 0, 0, 0, 0, 0] : M = 1; S55[i0] -> [34, i0, 8, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S11[] -> [10, 0, 0, 0, 0, 0, 0] : M = 1; S19[] -> [18, 0, 0, 0, 0, 0, 0] : M = 1; S107[i0, i1, i2] -> [34, i0, 46, i1, 0, i2, 5] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S98[i0, i1] -> [34, i0, 42, i1, 1, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= N; S104[i0, i1, i2] -> [34, i0, 46, i1, 0, i2, 2] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S29[i0, i1] -> [27, i0, 0, i1, 1, 0, 0] : M = 1 and i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= N; S20[] -> [19, 0, 0, 0, 0, 0, 0] : M = 1; S103[i0, i1, i2] -> [34, i0, 46, i1, 0, i2, 1] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S105[i0, i1, i2] -> [34, i0, 46, i1, 0, i2, 3] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S97[i0, i1, i2] -> [34, i0, 42, i1, 0, i2, 2] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= N and i2 >= 1 and i2 <= N; S44[i0, i1] -> [34, i0, 3, i1, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S106[i0, i1, i2] -> [34, i0, 46, i1, 0, i2, 4] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q and i2 >= 1 and i2 <= R; S34[] -> [30, 0, 0, 0, 0, 0, 0] : M = 1; S111[i0, i1] -> [34, i0, 47, i1, 3, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S99[i0] -> [34, i0, 43, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S81[i0] -> [34, i0, 28, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S23[] -> [22, 0, 0, 0, 0, 0, 0] : M = 1; S117[i0, i1] -> [34, i0, 48, i1, 3, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S74[i0] -> [34, i0, 21, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P; S113[i0, i1] -> [34, i0, 47, i1, 5, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= Q; S119[i0, i1] -> [34, i0, 48, i1, 5, 0, 0] : M = 1 and i0 >= 2 and i0 <= P and i1 >= 1 and i1 <= R; S73[i0] -> [34, i0, 20, 0, 0, 0, 0] : M = 1 and i0 >= 2 and i0 <= P } +[M, N, O, P, Q, R] -> { : } +[M, N, O, P, Q, R] -> { [i, j, k, l, m, n, o] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/test.c b/polly/lib/External/isl/test_inputs/codegen/cloog/test.c new file mode 100644 index 00000000000..84c84931e35 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/test.c @@ -0,0 +1,17 @@ +{ + for (int c0 = 1; c0 <= 2; c0 += 1) + for (int c1 = 1; c1 <= M; c1 += 1) + S1(c0, c1); + for (int c0 = 3; c0 <= N; c0 += 1) { + for (int c1 = 1; c1 <= min(M, c0 - 1); c1 += 1) + S1(c0, c1); + if (M >= c0) { + S1(c0, c0); + S2(c0, c0); + } + for (int c1 = c0 + 1; c1 <= M; c1 += 1) + S1(c0, c1); + if (c0 >= M + 1) + S2(c0, c0); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/test.in b/polly/lib/External/isl/test_inputs/codegen/cloog/test.in new file mode 100644 index 00000000000..981d9339f52 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/test.in @@ -0,0 +1,3 @@ +[M, N] -> { S1[i0, i1] -> [i0, i1, 0] : i0 >= 1 and i0 <= N and i1 >= 1 and i1 <= M; S2[i0, i0] -> [i0, i0, 1] : i0 >= 3 and i0 <= N } +[M, N] -> { : N >= M and M >= 4 } +[M, N] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/thomasset.c b/polly/lib/External/isl/test_inputs/codegen/cloog/thomasset.c new file mode 100644 index 00000000000..8d6709e7d9b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/thomasset.c @@ -0,0 +1,9 @@ +{ + for (int c0 = 0; c0 <= floord(n - 1, 3); c0 += 1) + for (int c2 = 3 * c0 + 1; c2 <= min(n, 3 * c0 + 3); c2 += 1) + S1(c2, c0); + for (int c0 = floord(n, 3); c0 <= 2 * floord(n, 3); c0 += 1) + for (int c1 = 0; c1 < n; c1 += 1) + for (int c3 = max(1, (n % 3) - n + 3 * c0); c3 <= min(n, (n % 3) - n + 3 * c0 + 2); c3 += 1) + S2(c1 + 1, c3, 0, n / 3, c0 - n / 3); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/thomasset.in b/polly/lib/External/isl/test_inputs/codegen/cloog/thomasset.in new file mode 100644 index 00000000000..398e5234603 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/thomasset.in @@ -0,0 +1,3 @@ +[n] -> { S2[i0, i1, 0, i3, i4] -> [i3 + i4, -1 + i0] : i0 <= n and i1 <= n and i1 >= 1 and i0 >= 1 and 3i4 <= i1 and 3i4 >= -2 + i1 and 3i3 <= n and 3i3 >= -2 + n; S1[i0, i1] -> [i1, 0] : i0 <= n and i0 >= 1 and 3i1 <= -1 + i0 and 3i1 >= -3 + i0 } +[n] -> { : } +[n] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/tiling.c b/polly/lib/External/isl/test_inputs/codegen/cloog/tiling.c new file mode 100644 index 00000000000..971b988a578 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/tiling.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= n / 10; c0 += 1) + for (int c1 = 10 * c0; c1 <= min(n, 10 * c0 + 9); c1 += 1) + S1(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/tiling.in b/polly/lib/External/isl/test_inputs/codegen/cloog/tiling.in new file mode 100644 index 00000000000..6f0530f2ba0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/tiling.in @@ -0,0 +1,3 @@ +[n] -> { S1[ii, i] -> [ii, i, 0] : i >= 0 and i <= n and i <= 9 + 10ii and i >= 10ii } +[n] -> { : n >= 0 } +[n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/uday_scalars.c b/polly/lib/External/isl/test_inputs/codegen/cloog/uday_scalars.c new file mode 100644 index 00000000000..d8002a86d86 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/uday_scalars.c @@ -0,0 +1,6 @@ +{ + for (int c2 = 0; c2 <= n; c2 += 1) + S1(c2, 0, 0); + for (int c2 = 0; c2 <= n; c2 += 1) + S2(0, c2, 0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/uday_scalars.in b/polly/lib/External/isl/test_inputs/codegen/cloog/uday_scalars.in new file mode 100644 index 00000000000..ae29bb54f89 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/uday_scalars.in @@ -0,0 +1,3 @@ +[n] -> { S1[i0, 0, 0] -> [0, 1, i0, 0] : i0 >= 0 and i0 <= n; S2[0, i1, 0] -> [1, 0, i1, 1] : i1 >= 0 and i1 <= n } +[n] -> { : } +[n] -> { [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/union.c b/polly/lib/External/isl/test_inputs/codegen/cloog/union.c new file mode 100644 index 00000000000..6dc0a9b877f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/union.c @@ -0,0 +1,6 @@ +if (M >= 11) { + for (int c0 = -100; c0 <= 0; c0 += 1) + S1(-c0); +} else + for (int c0 = 0; c0 <= 100; c0 += 1) + S1(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/union.in b/polly/lib/External/isl/test_inputs/codegen/cloog/union.in new file mode 100644 index 00000000000..23b6cab9a89 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/union.in @@ -0,0 +1,3 @@ +[M] -> { S1[i0] -> [i0] : M <= 10 and i0 >= 0 and i0 <= 100; S1[i0] -> [-i0] : M >= 11 and i0 >= 0 and i0 <= 100 } +[M] -> { : M >= 1 or M <= -1 } +[M] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/unroll.c b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll.c new file mode 100644 index 00000000000..83c4577b479 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll.c @@ -0,0 +1,13 @@ +{ + S1(0); + S1(1); + S1(2); + S1(3); + S1(4); + S1(5); + S1(6); + S1(7); + S1(8); + S1(9); + S1(10); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/unroll.in b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll.in new file mode 100644 index 00000000000..1e449e0b420 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll.in @@ -0,0 +1,3 @@ +[n] -> { S1[i] -> [i, 0] : i >= 0 and i <= 10 } +[n] -> { : } +[n] -> { [i, j] -> unroll[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/unroll2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll2.c new file mode 100644 index 00000000000..b96ddd73fe2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll2.c @@ -0,0 +1,6 @@ +{ + if (n >= 0 && n <= 9) + S1(n); + if (n >= -1 && n <= 9) + S1(n + 1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/unroll2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll2.in new file mode 100644 index 00000000000..eb71e075ab3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/unroll2.in @@ -0,0 +1,3 @@ +[n] -> { S1[i] -> [i, 0] : i >= n and i <= 1 + n and n <= 9 and i >= 0 } +[n] -> { : } +[n] -> { [i, j] -> unroll[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/usvd_e_t.c b/polly/lib/External/isl/test_inputs/codegen/cloog/usvd_e_t.c new file mode 100644 index 00000000000..af8c9fe42f0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/usvd_e_t.c @@ -0,0 +1,348 @@ +{ + for (int c0 = 0; c0 <= 2; c0 += 1) { + S1(c0, 0, 0); + for (int c1 = 0; c1 <= 4; c1 += 1) + S2(c0, c1, 0); + } + S1(3, 0, 0); + for (int c1 = 0; c1 <= 4; c1 += 1) + S2(3, c1, 0); + for (int c1 = 7; c1 <= 11; c1 += 1) + S8(3, c1, 0); + S1(4, 0, 0); + S2(4, 0, 0); + S3(4, 0, 0); + S5(4, 0, 0); + for (int c1 = 1; c1 <= 4; c1 += 1) { + S2(4, c1, 0); + S5(4, c1, 0); + } + for (int c1 = 7; c1 <= 11; c1 += 1) + S8(4, c1, 0); + for (int c0 = 5; c0 <= 6; c0 += 1) { + for (int c1 = -4; c1 < c0 - 8; c1 += 1) + S6(c0, c1, 0); + for (int c1 = c0 - 9; c1 < 0; c1 += 1) + S7(c0, c1, 0); + S3(c0, 0, 0); + S7(c0, 0, 0); + for (int c1 = 1; c1 < c0 - 3; c1 += 1) + S4(c0, c1, -1); + for (int c1 = c0 - 4; c1 <= 4; c1 += 1) + S5(c0, c1, 0); + for (int c1 = 7; c1 <= 11; c1 += 1) + S8(c0, c1, 0); + } + for (int c1 = -4; c1 < -1; c1 += 1) + S6(7, c1, 0); + for (int c1 = -2; c1 < 0; c1 += 1) + S7(7, c1, 0); + S3(7, 0, 0); + S7(7, 0, 0); + for (int c1 = 1; c1 <= 3; c1 += 1) + S4(7, c1, -1); + for (int c1 = 3; c1 <= 4; c1 += 1) + S5(7, c1, 0); + S9(7, 4, 0); + S10(7, 4, 0); + S11(7, 4, 0); + S21(7, 4, 0); + S23(7, 4, 0); + S11(7, 4, 1); + S16(7, 4, 1); + S17(7, 4, 1); + for (int c2 = 2; c2 <= 4; c2 += 1) + S11(7, 4, c2); + S12(7, 5, 0); + S21(7, 5, 0); + S22(7, 5, 0); + S23(7, 5, 0); + S12(7, 5, 1); + S16(7, 5, 1); + S17(7, 5, 1); + for (int c2 = 2; c2 <= 4; c2 += 1) + S12(7, 5, c2); + S21(7, 6, 0); + S22(7, 6, 0); + S23(7, 6, 0); + for (int c1 = 7; c1 <= 8; c1 += 1) { + S8(7, c1, 0); + S21(7, c1, 0); + S22(7, c1, 0); + S23(7, c1, 0); + } + S8(7, 9, 0); + S22(7, 9, 0); + for (int c1 = 10; c1 <= 11; c1 += 1) + S8(7, c1, 0); + for (int c1 = -4; c1 < 0; c1 += 1) + S6(8, c1, 0); + S7(8, -1, 0); + S3(8, 0, 0); + S7(8, 0, 0); + S19(8, 1, -2); + S4(8, 1, -1); + S19(8, 1, -1); + S19(8, 1, 0); + S15(8, 1, 4); + S18(8, 1, 4); + for (int c2 = -4; c2 < -2; c2 += 1) { + S14(8, 2, c2); + S20(8, 2, c2); + } + S14(8, 2, -2); + S19(8, 2, -2); + S20(8, 2, -2); + S4(8, 2, -1); + S14(8, 2, -1); + S19(8, 2, -1); + S20(8, 2, -1); + S14(8, 2, 0); + S19(8, 2, 0); + S20(8, 2, 0); + S15(8, 2, 4); + S18(8, 2, 4); + for (int c2 = -4; c2 < -1; c2 += 1) { + S14(8, 3, c2); + S20(8, 3, c2); + } + S4(8, 3, -1); + S14(8, 3, -1); + S20(8, 3, -1); + S14(8, 3, 0); + S20(8, 3, 0); + S15(8, 3, 4); + S18(8, 3, 4); + for (int c2 = -4; c2 < -1; c2 += 1) { + S14(8, 4, c2); + S20(8, 4, c2); + } + S4(8, 4, -1); + S14(8, 4, -1); + S20(8, 4, -1); + S5(8, 4, 0); + S9(8, 4, 0); + S10(8, 4, 0); + S14(8, 4, 0); + S20(8, 4, 0); + S23(8, 4, 0); + S13(8, 4, 1); + S21(8, 4, 1); + S23(8, 4, 1); + S24(8, 4, 1); + S13(8, 4, 2); + S16(8, 4, 2); + S17(8, 4, 2); + S24(8, 4, 2); + S13(8, 4, 3); + S24(8, 4, 3); + S13(8, 4, 4); + S15(8, 4, 4); + S23(8, 5, 0); + S11(8, 5, 1); + S21(8, 5, 1); + S22(8, 5, 1); + S23(8, 5, 1); + S24(8, 5, 1); + S11(8, 5, 2); + S16(8, 5, 2); + S17(8, 5, 2); + S24(8, 5, 2); + S11(8, 5, 3); + S24(8, 5, 3); + S11(8, 5, 4); + S15(8, 5, 4); + S23(8, 6, 0); + S12(8, 6, 1); + S21(8, 6, 1); + S22(8, 6, 1); + S23(8, 6, 1); + S24(8, 6, 1); + S12(8, 6, 2); + S16(8, 6, 2); + S17(8, 6, 2); + S24(8, 6, 2); + S12(8, 6, 3); + S24(8, 6, 3); + S12(8, 6, 4); + for (int c1 = 7; c1 <= 8; c1 += 1) { + S23(8, c1, 0); + S21(8, c1, 1); + S22(8, c1, 1); + S23(8, c1, 1); + for (int c2 = 1; c2 <= 3; c2 += 1) + S24(8, c1, c2); + } + S22(8, 9, 1); + S7(9, 0, 0); + for (int c1 = 1; c1 <= 2; c1 += 1) { + for (int c2 = -1; c2 <= 0; c2 += 1) + S19(9, c1, c2); + for (int c2 = 4; c2 <= 5; c2 += 1) { + S15(9, c1, c2); + S18(9, c1, c2); + } + } + S20(9, 3, -4); + for (int c2 = -3; c2 < -1; c2 += 1) { + S14(9, 3, c2); + S20(9, 3, c2); + } + for (int c2 = -1; c2 <= 0; c2 += 1) { + S14(9, 3, c2); + S19(9, 3, c2); + S20(9, 3, c2); + } + for (int c2 = 4; c2 <= 5; c2 += 1) { + S15(9, 3, c2); + S18(9, 3, c2); + } + S20(9, 4, -4); + for (int c2 = -3; c2 < 0; c2 += 1) { + S14(9, 4, c2); + S20(9, 4, c2); + } + S9(9, 4, 0); + S10(9, 4, 0); + S14(9, 4, 0); + S20(9, 4, 0); + for (int c2 = 0; c2 <= 1; c2 += 1) + S23(9, 4, c2); + S13(9, 4, 2); + S21(9, 4, 2); + S23(9, 4, 2); + S24(9, 4, 2); + S13(9, 4, 3); + S16(9, 4, 3); + S17(9, 4, 3); + S24(9, 4, 3); + S13(9, 4, 4); + for (int c2 = 4; c2 <= 5; c2 += 1) { + S15(9, 4, c2); + S18(9, 4, c2); + } + for (int c2 = 0; c2 <= 1; c2 += 1) + S23(9, 5, c2); + S13(9, 5, 2); + S21(9, 5, 2); + S22(9, 5, 2); + S23(9, 5, 2); + S24(9, 5, 2); + S13(9, 5, 3); + S16(9, 5, 3); + S17(9, 5, 3); + S24(9, 5, 3); + S13(9, 5, 4); + for (int c2 = 4; c2 <= 5; c2 += 1) + S15(9, 5, c2); + for (int c2 = 0; c2 <= 1; c2 += 1) + S23(9, 6, c2); + S11(9, 6, 2); + S21(9, 6, 2); + S22(9, 6, 2); + S23(9, 6, 2); + S24(9, 6, 2); + S11(9, 6, 3); + S16(9, 6, 3); + S17(9, 6, 3); + S24(9, 6, 3); + S11(9, 6, 4); + for (int c2 = 0; c2 <= 1; c2 += 1) + S23(9, 7, c2); + S12(9, 7, 2); + S21(9, 7, 2); + S22(9, 7, 2); + S23(9, 7, 2); + S24(9, 7, 2); + S12(9, 7, 3); + S16(9, 7, 3); + S17(9, 7, 3); + S24(9, 7, 3); + S12(9, 7, 4); + for (int c2 = 0; c2 <= 1; c2 += 1) + S23(9, 8, c2); + S21(9, 8, 2); + S22(9, 8, 2); + S23(9, 8, 2); + for (int c2 = 2; c2 <= 3; c2 += 1) + S24(9, 8, c2); + S22(9, 9, 2); + for (int c1 = 1; c1 <= 3; c1 += 1) { + S19(10, c1, 0); + S26(10, c1, 3); + S15(10, c1, 4); + S18(10, c1, 4); + S25(10, c1, 4); + for (int c2 = 5; c2 <= 6; c2 += 1) { + S15(10, c1, c2); + S18(10, c1, c2); + } + } + for (int c2 = -4; c2 < -2; c2 += 1) + S20(10, 4, c2); + for (int c2 = -2; c2 < 0; c2 += 1) { + S14(10, 4, c2); + S20(10, 4, c2); + } + S9(10, 4, 0); + S10(10, 4, 0); + S14(10, 4, 0); + S19(10, 4, 0); + S20(10, 4, 0); + S13(10, 4, 3); + S21(10, 4, 3); + S24(10, 4, 3); + S26(10, 4, 3); + S13(10, 4, 4); + S15(10, 4, 4); + S16(10, 4, 4); + S17(10, 4, 4); + S18(10, 4, 4); + S25(10, 4, 4); + for (int c2 = 5; c2 <= 6; c2 += 1) { + S15(10, 4, c2); + S18(10, 4, c2); + } + S13(10, 5, 3); + S21(10, 5, 3); + S22(10, 5, 3); + S24(10, 5, 3); + S26(10, 5, 3); + S13(10, 5, 4); + S15(10, 5, 4); + S16(10, 5, 4); + S17(10, 5, 4); + S18(10, 5, 4); + S25(10, 5, 4); + for (int c2 = 5; c2 <= 6; c2 += 1) { + S15(10, 5, c2); + S18(10, 5, c2); + } + S13(10, 6, 3); + S21(10, 6, 3); + S22(10, 6, 3); + S24(10, 6, 3); + S13(10, 6, 4); + S16(10, 6, 4); + S17(10, 6, 4); + S11(10, 7, 3); + S21(10, 7, 3); + S22(10, 7, 3); + S24(10, 7, 3); + S11(10, 7, 4); + S16(10, 7, 4); + S17(10, 7, 4); + S12(10, 8, 3); + S21(10, 8, 3); + S22(10, 8, 3); + S24(10, 8, 3); + S12(10, 8, 4); + S16(10, 8, 4); + S17(10, 8, 4); + S22(10, 9, 3); + for (int c0 = 11; c0 <= 14; c0 += 1) + for (int c1 = 1; c1 <= 5; c1 += 1) { + S26(c0, c1, 3); + S25(c0, c1, 4); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/usvd_e_t.in b/polly/lib/External/isl/test_inputs/codegen/cloog/usvd_e_t.in new file mode 100644 index 00000000000..feb8f0898bb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/usvd_e_t.in @@ -0,0 +1,3 @@ +{ S19[i0, i1, i2] -> [i0, i1, i2, 18] : i0 >= 8 and i1 >= 1 and i2 <= 0 and i2 >= -10 + i0 and i1 <= -6 + i0; S21[i0, i1, -7 + i0] -> [i0, i1, -7 + i0, 20] : i0 <= 10 and i1 >= 4 and i1 <= 8 and i0 >= 7; S17[i0, i1, -6 + i0] -> [i0, i1, -6 + i0, 16] : i0 >= 7 and i1 >= 4 and i0 <= 10 and i1 <= -2 + i0; S4[i0, i1, -1] -> [i0, i1, -1, 3] : i0 <= 8 and i1 >= 1 and i1 <= -4 + i0; S1[i0, 0, 0] -> [i0, 0, 0, 0] : i0 >= 0 and i0 <= 4; S10[i0, 4, 0] -> [i0, 4, 0, 9] : i0 >= 7 and i0 <= 10; S16[i0, i1, -6 + i0] -> [i0, i1, -6 + i0, 15] : i0 <= 10 and i1 >= 4 and i0 >= 7 and i1 <= -2 + i0; S24[i0, i1, i2] -> [i0, i1, i2, 23] : i0 >= 8 and i1 >= 4 and i1 <= 8 and i2 <= 3 and i2 >= -7 + i0; S23[i0, i1, i2] -> [i0, i1, i2, 22] : i0 <= 9 and i1 >= 4 and i1 <= 8 and i2 >= 0 and i2 <= -7 + i0; S7[i0, i1, 0] -> [i0, i1, 0, 6] : i0 >= 5 and i1 <= 0 and i1 >= -9 + i0; S25[i0, i1, 4] -> [i0, i1, 4, 24] : i0 >= 10 and i0 <= 14 and i1 >= 1 and i1 <= 5; S18[i0, i1, i2] -> [i0, i1, i2, 17] : i0 <= 10 and i1 >= 1 and i2 >= 4 and i2 <= -4 + i0 and i1 <= -5 + i0; S14[i0, i1, i2] -> [i0, i1, i2, 13] : i0 >= 8 and i1 <= 4 and i2 <= 0 and i2 >= -12 + i0 and i1 >= -6 + i0; S6[i0, i1, 0] -> [i0, i1, 0, 5] : i0 <= 8 and i1 >= -4 and i1 <= -9 + i0; S8[i0, i1, 0] -> [i0, i1, 0, 7] : i0 >= 3 and i0 <= 7 and i1 >= 7 and i1 <= 11; S15[i0, i1, i2] -> [i0, i1, i2, 14] : i0 <= 10 and i1 >= 1 and i1 <= 5 and i2 >= 4 and i2 <= -4 + i0; S11[i0, -3 + i0, i2] -> [i0, -3 + i0, i2, 10] : i0 <= 10 and i0 >= 7 and i2 <= 4 and i2 >= -7 + i0; S20[i0, i1, i2] -> [i0, i1, i2, 19] : i0 >= 8 and i1 <= 4 and i2 >= -4 and i2 <= 0 and i1 >= -6 + i0; S12[i0, -2 + i0, i2] -> [i0, -2 + i0, i2, 11] : i0 >= 7 and i0 <= 10 and i2 <= 4 and i2 >= -7 + i0; S9[i0, 4, 0] -> [i0, 4, 0, 8] : i0 >= 7 and i0 <= 10; S22[i0, i1, -7 + i0] -> [i0, i1, -7 + i0, 21] : i0 >= 7 and i1 >= 5 and i1 <= 9 and i0 <= 10; S13[i0, i1, i2] -> [i0, i1, i2, 12] : i0 <= 10 and i1 >= 4 and i2 <= 4 and i2 >= -7 + i0 and i1 <= -4 + i0; S26[i0, i1, 3] -> [i0, i1, 3, 25] : i0 >= 10 and i0 <= 14 and i1 >= 1 and i1 <= 5; S3[i0, 0, 0] -> [i0, 0, 0, 2] : i0 >= 4 and i0 <= 8; S5[i0, i1, 0] -> [i0, i1, 0, 4] : i0 >= 4 and i1 <= 4 and i1 >= -4 + i0; S2[i0, i1, 0] -> [i0, i1, 0, 1] : i0 >= 0 and i0 <= 4 and i1 >= 0 and i1 <= 4 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/vasilache.c b/polly/lib/External/isl/test_inputs/codegen/cloog/vasilache.c new file mode 100644 index 00000000000..c6d32ca637b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/vasilache.c @@ -0,0 +1,23 @@ +{ + S1(); + S2(); + for (int c1 = 0; c1 < N; c1 += 1) + for (int c3 = 0; c3 < N; c3 += 1) { + S4(c1, c3); + S5(c1, c3); + } + for (int c1 = 0; c1 < N; c1 += 1) + for (int c3 = 0; c3 < N; c3 += 1) + for (int c5 = 0; c5 <= (N - 1) / 32; c5 += 1) { + S7(c1, c3, c5, 32 * c5); + for (int c7 = 32 * c5 + 1; c7 <= min(N - 1, 32 * c5 + 31); c7 += 1) { + S6(c1, c3, c5, c7 - 1); + S7(c1, c3, c5, c7); + } + if (32 * c5 + 31 >= N) { + S6(c1, c3, c5, N - 1); + } else + S6(c1, c3, c5, 32 * c5 + 31); + } + S8(); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/vasilache.in b/polly/lib/External/isl/test_inputs/codegen/cloog/vasilache.in new file mode 100644 index 00000000000..a9b9860fd2b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/vasilache.in @@ -0,0 +1,3 @@ +[M, N] -> { S4[i0, i1] -> [3, i0, 0, i1, 0, 0, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <= -1 + N; S1[] -> [0, 0, 0, 0, 0, 0, 0, 0, 0]; S6[i0, i1, i2, i3] -> [4, i0, 0, i1, 0, i2, 0, 1 + i3, 0] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <= -1 + N and i3 >= 0 and i3 <= -1 + N and i3 >= 32i2 and i3 <= 31 + 32i2; S7[i0, i1, i2, i3] -> [4, i0, 0, i1, 0, i2, 0, i3, 1] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <= -1 + N and i3 >= 0 and i3 <= -1 + N and i3 >= 32i2 and i3 <= 31 + 32i2; S5[i0, i1] -> [3, i0, 0, i1, 1, 0, 0, 0, 0] : i0 >= 0 and i0 <= -1 + N and i1 >= 0 and i1 <= -1 + N; S2[] -> [1, 0, 0, 0, 0, 0, 0, 0, 0]; S8[] -> [5, 0, 0, 0, 0, 0, 0, 0, 0]; S3[] -> [2, 0, 0, 0, 0, 0, 0, 0, 0] : M >= 79 } +[M, N] -> { : M <= 3 and N >= 100 } +[M, N] -> { [i, j, k, l, m, n, o, p, q] -> separate[x] : x >= 7 } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/vivien.c b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien.c new file mode 100644 index 00000000000..ce38c10e833 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien.c @@ -0,0 +1,85 @@ +{ + for (int c0 = -27 * n + 2; c0 <= 1; c0 += 1) + S1(c0 - 1); + for (int c0 = 2; c0 <= min(2 * n, n + 29); c0 += 1) { + if (c0 >= 3) { + if (2 * n >= c0 + 1) { + S4(c0 - c0 / 2 - 1, c0 / 2 + 1); + if (c0 + 2 >= 2 * n) { + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + } else if (c0 >= 5) { + S4(c0 - c0 / 2 - 2, c0 / 2 + 2); + for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1) + S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2); + } + } + for (int c1 = -c0 + c0 / 2 + 3; c1 <= min(-1, n - c0); c1 += 1) { + S4(-c1, c0 + c1); + S6(-c1 + 2, c0 + c1 - 2); + for (int c2 = 1; c2 <= -c1; c2 += 1) + S5(-c1 + 1, c0 + c1 - 1, c2); + } + if (2 * n >= c0 + 3 && c0 >= n + 2) { + S6(-n + c0 + 1, n - 1); + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + } + if (c0 >= n + 3 && 2 * n >= c0 + 1) { + S6(-n + c0, n); + } else { + if (c0 >= 5 && n + 1 >= c0) { + S6(2, c0 - 2); + S1(c0 - 1); + } else if (n + 1 >= c0 && c0 <= 4) + S1(c0 - 1); + if (n + 1 >= c0) { + S6(1, c0 - 1); + } else if (n >= 3 && c0 == n + 2) { + S6(2, n); + S1(n + 1); + } + } + if (c0 >= n + 3) + S1(c0 - 1); + if (n == 2 && c0 == 4) + S1(3); + } else + S1(1); + if (c0 % 2 == 0) + S3(c0 / 2); + for (int c1 = max(1, -n + c0); c1 < (c0 + 1) / 2; c1 += 1) + S2(c0 - c1, c1); + } + for (int c0 = max(2 * n + 1, -27 * n + 2); c0 <= n + 29; c0 += 1) + S1(c0 - 1); + for (int c0 = n + 30; c0 <= 2 * n; c0 += 1) { + if (2 * n >= c0 + 1) { + S4(c0 - c0 / 2 - 1, c0 / 2 + 1); + if (c0 + 2 >= 2 * n) { + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + } else { + S4(c0 - c0 / 2 - 2, c0 / 2 + 2); + for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1) + S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2); + } + for (int c1 = -c0 + c0 / 2 + 3; c1 <= n - c0; c1 += 1) { + S4(-c1, c0 + c1); + S6(-c1 + 2, c0 + c1 - 2); + for (int c2 = 1; c2 <= -c1; c2 += 1) + S5(-c1 + 1, c0 + c1 - 1, c2); + } + if (2 * n >= c0 + 3) { + S6(-n + c0 + 1, n - 1); + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + } + S6(-n + c0, n); + } + if (c0 % 2 == 0) + S3(c0 / 2); + for (int c1 = -n + c0; c1 < (c0 + 1) / 2; c1 += 1) + S2(c0 - c1, c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/vivien.in b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien.in new file mode 100644 index 00000000000..b591ef35976 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien.in @@ -0,0 +1,3 @@ +[n] -> { S6[i0, i1] -> [2i0 + 2i1, 2 - i0, 0] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n; S2[i0, i1] -> [1 + 2i0 + 2i1, i1, 0] : 29i1 >= 1 - i0 and i0 <= n and i1 >= 1 and i1 <= -1 + i0; S1[i0] -> [2 + 2i0, 0, 0] : i0 >= 1 - 27n and i0 <= 28 + n; S4[i0, i1] -> [2i0 + 2i1, -i0, 0] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n; S3[i0] -> [1 + 4i0, 0, 0] : i0 >= 1 and i0 <= n; S5[i0, i1, i2] -> [2i0 + 2i1, 1 - i0, i2] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n and i2 >= 1 and i2 <= -1 + i0 } +[n] -> { : } +[n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/vivien2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien2.c new file mode 100644 index 00000000000..7fe52ff319b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien2.c @@ -0,0 +1,77 @@ +{ + for (int c0 = -27 * n + 2; c0 <= 1; c0 += 1) + S1(c0 - 1); + for (int c0 = 2; c0 <= n + 29; c0 += 1) { + if (c0 >= 3) { + S4(c0 - c0 / 2 - 1, c0 / 2 + 1); + if (c0 >= 5 && 2 * n >= c0 + 3) { + S4(c0 - c0 / 2 - 2, c0 / 2 + 2); + for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1) + S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2); + } + for (int c1 = -c0 + c0 / 2 + 3; c1 <= min(-1, n - c0); c1 += 1) { + S4(-c1, c0 + c1); + S6(-c1 + 2, c0 + c1 - 2); + for (int c2 = 1; c2 <= -c1; c2 += 1) + S5(-c1 + 1, c0 + c1 - 1, c2); + } + if (2 * n >= c0 + 3 && c0 >= n + 2) { + S6(-n + c0 + 1, n - 1); + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + } else if (c0 + 2 >= 2 * n) + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + if (c0 >= n + 3) { + S6(-n + c0, n); + S1(c0 - 1); + } else { + if (c0 >= 5 && n + 1 >= c0) { + S6(2, c0 - 2); + S1(c0 - 1); + } else if (c0 <= 4) + S1(c0 - 1); + if (n + 1 >= c0) { + S6(1, c0 - 1); + } else { + S6(2, n); + S1(n + 1); + } + } + } else + S1(1); + if (c0 % 2 == 0) + S3(c0 / 2); + for (int c1 = max(1, -n + c0); c1 < (c0 + 1) / 2; c1 += 1) + S2(c0 - c1, c1); + } + for (int c0 = n + 30; c0 <= 2 * n; c0 += 1) { + if (2 * n >= c0 + 1) { + S4(c0 - c0 / 2 - 1, c0 / 2 + 1); + if (c0 + 2 >= 2 * n) { + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + } else { + S4(c0 - c0 / 2 - 2, c0 / 2 + 2); + for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1) + S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2); + } + for (int c1 = -c0 + c0 / 2 + 3; c1 <= n - c0; c1 += 1) { + S4(-c1, c0 + c1); + S6(-c1 + 2, c0 + c1 - 2); + for (int c2 = 1; c2 <= -c1; c2 += 1) + S5(-c1 + 1, c0 + c1 - 1, c2); + } + if (2 * n >= c0 + 3) { + S6(-n + c0 + 1, n - 1); + for (int c2 = 1; c2 < -n + c0; c2 += 1) + S5(-n + c0, n, c2); + } + S6(-n + c0, n); + } + if (c0 % 2 == 0) + S3(c0 / 2); + for (int c1 = -n + c0; c1 < (c0 + 1) / 2; c1 += 1) + S2(c0 - c1, c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/vivien2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien2.in new file mode 100644 index 00000000000..d8b1b1a007b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/vivien2.in @@ -0,0 +1,3 @@ +[n] -> { S6[i0, i1] -> [2i0 + 2i1, 2 - i0, 0] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n; S2[i0, i1] -> [1 + 2i0 + 2i1, i1, 0] : 29i1 >= 1 - i0 and i0 <= n and i1 >= 1 and i1 <= -1 + i0; S1[i0] -> [2 + 2i0, 0, 0] : i0 >= 1 - 27n and i0 <= 28 + n; S4[i0, i1] -> [2i0 + 2i1, -i0, 0] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n; S3[i0] -> [1 + 4i0, 0, 0] : i0 >= 1 and i0 <= n; S5[i0, i1, i2] -> [2i0 + 2i1, 1 - i0, i2] : i0 >= 1 and i0 <= n and i1 >= 1 + i0 and i1 <= n and i2 >= 1 and i2 <= -1 + i0 } +[n] -> { : n >= 30 } +[n] -> { [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/walters.c b/polly/lib/External/isl/test_inputs/codegen/cloog/walters.c new file mode 100644 index 00000000000..2c1bd93858b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/walters.c @@ -0,0 +1,15 @@ +{ + S2(1, 0, 1, 0); + S4(1, 0, 1, 0); + S3(2, 0, 1, 1); + S4(2, 0, 1, 1); + for (int c0 = 3; c0 <= 10; c0 += 1) { + if (c0 % 3 == 0) { + S1(c0, c0 / 3, c0 / 3, c0 / 3); + } else if ((c0 - 1) % 3 == 0) { + S2(c0, (c0 - 1) / 3, (c0 + 2) / 3, (c0 - 1) / 3); + } else + S3(c0, (c0 - 2) / 3, (c0 + 1) / 3, (c0 + 1) / 3); + S4(c0, c0 / 3, (c0 - 1) / 3 + 1, c0 - (c0 - 1) / 3 - c0 / 3 - 1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/walters.in b/polly/lib/External/isl/test_inputs/codegen/cloog/walters.in new file mode 100644 index 00000000000..6e2645147e6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/walters.in @@ -0,0 +1,3 @@ +{ S2[i, div36, div37, div38] -> [i, div36, k, div38, 1] : 3div37 = 2 + i and 3k = 2 + i and i >= 1 and i <= 10 and 3div36 >= -2 + i and 3div38 <= 1 + i and 3div38 >= -1 + i and 3div36 <= i; S1[i, div36, div37, div38] -> [i, j, div37, div38, 0] : 3j = i and 3div36 = i and i >= 3 and i <= 10 and 3div37 >= i and 3div38 <= 1 + i and 3div37 <= 2 + i and 3div38 >= -1 + i; S3[i, div36, div37, div38] -> [i, div36, div37, l, 2] : 3l = 1 + i and 3div38 = 1 + i and i <= 10 and i >= 2 and 3div36 >= -2 + i and 3div37 <= 2 + i and 3div36 <= i and 3div37 >= i; S4[i, div36, div37, div38] -> [i, div36, div37, div38, 3] : i >= 1 and i <= 10 and 3div36 <= i and 3div36 >= -2 + i and 3div37 <= 2 + i and 3div37 >= i and 3div38 <= 1 + i and 3div38 >= -1 + i } +{ : } +{ [i, j, k, l, m] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/walters2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/walters2.c new file mode 100644 index 00000000000..27565fbde9a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/walters2.c @@ -0,0 +1,12 @@ +{ + for (int c1 = 0; c1 <= 51; c1 += 1) + S2(0, c1); + for (int c0 = 1; c0 <= 24; c0 += 1) { + S2(c0, 0); + for (int c1 = 1; c1 <= 50; c1 += 1) + S1(c0, c1); + S2(c0, 51); + } + for (int c1 = 0; c1 <= 51; c1 += 1) + S2(25, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/walters2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/walters2.in new file mode 100644 index 00000000000..ea01a10a336 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/walters2.in @@ -0,0 +1,3 @@ +{ S1[j, i] -> [j, i, 0] : j >= 1 and j <= 24 and i >= 1 and i <= 50; S2[j, 51] -> [j, 51, 1] : j >= 1 and j <= 24; S2[25, i] -> [25, i, 1] : i >= 1 and i <= 51; S2[0, i] -> [0, i, 1] : i >= 0 and i <= 51; S2[j, 0] -> [j, 0, 1] : j >= 1 and j <= 25 } +{ : } +{ [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/walters3.c b/polly/lib/External/isl/test_inputs/codegen/cloog/walters3.c new file mode 100644 index 00000000000..bafb9acbc8e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/walters3.c @@ -0,0 +1,7 @@ +{ + for (int c0 = 2; c0 <= 8; c0 += 2) { + S1(c0, c0 / 2, c0 / 2); + S2(c0, c0 / 2, c0 / 2); + } + S2(10, 5, 5); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/walters3.in b/polly/lib/External/isl/test_inputs/codegen/cloog/walters3.in new file mode 100644 index 00000000000..802bd4f0435 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/walters3.in @@ -0,0 +1,3 @@ +{ S2[j, a, b] -> [j, j', b, 1] : 2a = j and 2j' = j and j >= 1 and j <= 10 and 2b <= j and 2b >= -1 + j; S1[j, a, b] -> [j, j', k, 0] : 2a = j and 2j' = j and 2k = j and 2b = j and j <= 8 and j >= 2 } +{ : } +{ [i, j, k, l] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/wavefront.c b/polly/lib/External/isl/test_inputs/codegen/cloog/wavefront.c new file mode 100644 index 00000000000..7db0788fc68 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/wavefront.c @@ -0,0 +1,3 @@ +for (int c0 = 2; c0 <= n + m; c0 += 1) + for (int c1 = max(1, -m + c0); c1 <= min(n, c0 - 1); c1 += 1) + S1(c1, c0 - c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/wavefront.in b/polly/lib/External/isl/test_inputs/codegen/cloog/wavefront.in new file mode 100644 index 00000000000..61618c37a45 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/wavefront.in @@ -0,0 +1,3 @@ +[n, m] -> { S1[i0, i1] -> [i0 + i1, i0] : i0 >= 1 and i0 <= n and i1 >= 1 and i1 <= m } +[n, m] -> { : } +[n, m] -> { [i, j] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/yosr.c b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr.c new file mode 100644 index 00000000000..1c20057bd1b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr.c @@ -0,0 +1,12 @@ +{ + for (int c0 = 1; c0 < n; c0 += 1) { + for (int c2 = c0 + 1; c2 <= n; c2 += 1) + S1(c0, c2); + for (int c1 = 1; c1 < c0; c1 += 1) + for (int c2 = c1 + 1; c2 <= n; c2 += 1) + S2(c1, c2, c0); + } + for (int c1 = 1; c1 < n; c1 += 1) + for (int c2 = c1 + 1; c2 <= n; c2 += 1) + S2(c1, c2, n); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/yosr.in b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr.in new file mode 100644 index 00000000000..dcc93e5a69e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr.in @@ -0,0 +1,3 @@ +[n] -> { S2[i0, i1, i2] -> [i2] : i0 >= 1 and i0 <= -1 + n and i1 >= 1 + i0 and i1 <= n and i2 >= 1 + i0 and i2 <= n; S1[i0, i1] -> [i0] : i0 >= 1 and i0 <= -1 + n and i1 >= 1 + i0 and i1 <= n } +[n] -> { : } +[n] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/yosr2.c b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr2.c new file mode 100644 index 00000000000..a52909ccd45 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr2.c @@ -0,0 +1,13 @@ +{ + for (int c1 = 1; c1 <= M; c1 += 1) + S2(c1); + for (int c0 = 2; c0 <= M; c0 += 1) { + for (int c2 = c0 + 1; c2 <= M; c2 += 1) + for (int c3 = 1; c3 < c0; c3 += 1) + S3(c0, c2, c3); + for (int c1 = 1; c1 < c0; c1 += 1) + S4(c1, c0); + for (int c2 = 1; c2 < c0; c2 += 1) + S1(c0, c2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/yosr2.in b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr2.in new file mode 100644 index 00000000000..a07e1492b1c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/yosr2.in @@ -0,0 +1,3 @@ +[M] -> { S3[i0, i1, i2] -> [i0] : i0 >= 1 and i0 <= M and i1 >= 1 + i0 and i1 <= M and i2 >= 1 and i2 <= -1 + i0; S4[i0, i1] -> [i1] : i0 >= 1 and i0 <= M and i1 >= 1 + i0 and i1 <= M; S1[i0, i1] -> [i0] : i0 >= 1 and i0 <= M and i1 >= 1 and i1 <= -1 + i0; S2[i0] -> [0] : i0 >= 1 and i0 <= M } +[M] -> { : M >= 2 } +[M] -> { [i] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/youcef.c b/polly/lib/External/isl/test_inputs/codegen/cloog/youcef.c new file mode 100644 index 00000000000..1bc7ffd0524 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/youcef.c @@ -0,0 +1,6 @@ +for (int c0 = 0; c0 <= 5; c0 += 1) { + S1(c0, c0); + for (int c1 = c0; c1 <= 5; c1 += 1) + S2(c0, c1); + S3(c0, 5); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/youcef.in b/polly/lib/External/isl/test_inputs/codegen/cloog/youcef.in new file mode 100644 index 00000000000..5164abe2874 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/youcef.in @@ -0,0 +1,3 @@ +{ S1[i0, i0] -> [i0, i0, 0] : i0 >= 0 and i0 <= 5; S2[i0, i1] -> [i0, i1, 1] : i0 >= 0 and i0 <= 5 and i1 >= i0 and i1 <= 5; S3[i0, 5] -> [i0, 5, 2] : i0 >= 0 and i0 <= 5 } +{ : } +{ [i, j, k] -> separate[o0] } diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/youcefn.c b/polly/lib/External/isl/test_inputs/codegen/cloog/youcefn.c new file mode 100644 index 00000000000..1107790b201 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/youcefn.c @@ -0,0 +1,10 @@ +{ + for (int c0 = 1; c0 <= n; c0 += 1) { + S1(c0, c0); + for (int c1 = c0; c1 <= n; c1 += 1) + S2(c0, c1); + S3(c0, n); + } + for (int c0 = n + 1; c0 <= m; c0 += 1) + S3(c0, n); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/cloog/youcefn.in b/polly/lib/External/isl/test_inputs/codegen/cloog/youcefn.in new file mode 100644 index 00000000000..b21e30d7fa7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/cloog/youcefn.in @@ -0,0 +1,3 @@ +[n, m] -> { S3[i0, n] -> [i0, n, 2] : i0 >= 1 and i0 <= m; S2[i0, i1] -> [i0, i1, 1] : i0 >= 1 and i0 <= n and i1 >= i0 and i1 <= n; S1[i0, i0] -> [i0, i0, 0] : i0 >= 1 and i0 <= n } +[n, m] -> { : n >= 2 and m >= n } +[n, m] -> { [i, j, k] -> separate[o0] } |