diff options
Diffstat (limited to 'polly/lib/External/isl/test_inputs/codegen/omega')
267 files changed, 1570 insertions, 0 deletions
diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/README b/polly/lib/External/isl/test_inputs/codegen/omega/README new file mode 100644 index 00000000000..80e27fd462d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/README @@ -0,0 +1,5 @@ +The tests in this directory have been adapted from the corresponding omega+ +test cases. +The options have been derived semi-automatically and may not always +correspond to the intended meaning of the specified "effort" in the omega+ +test cases. diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/basics-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/basics-0.c new file mode 100644 index 00000000000..53995e9e89e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/basics-0.c @@ -0,0 +1,8 @@ +{ + for (int c0 = 5; c0 <= 8; c0 += 1) + s0(c0); + for (int c0 = 10; c0 <= 16; c0 += 2) + s0(c0); + for (int c0 = 20; c0 <= 25; c0 += 1) + s0(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/basics-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/basics-0.in new file mode 100644 index 00000000000..025da3d30d6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/basics-0.in @@ -0,0 +1,3 @@ +{ s0[In_1] -> [In_1] : (In_1 >= 5 and In_1 <= 8) or (exists (e0 = [(In_1)/2]: 2e0 = In_1 and In_1 >= 10 and In_1 <= 16)) or (In_1 >= 20 and In_1 <= 25) } +{ : } +{ [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/basics-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/basics-1.c new file mode 100644 index 00000000000..d3d69704165 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/basics-1.c @@ -0,0 +1,3 @@ +for (int c0 = -9; c0 <= 9; c0 += 1) + for (int c1 = max(1, -c0 + 1); c1 <= min(10, -c0 + 10); c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/basics-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/basics-1.in new file mode 100644 index 00000000000..82e109311bc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/basics-1.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_2 >= 1 - In_1 and In_2 >= 1 and In_2 <= 10 - In_1 and In_2 <= 10 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/chosol-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-0.c new file mode 100644 index 00000000000..464ee493499 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-0.c @@ -0,0 +1,9 @@ +{ + for (int c1 = 2; c1 <= n; c1 += 1) + s0(c1); + for (int c1 = 1; c1 < n; c1 += 1) { + for (int c3 = c1 + 1; c3 <= n; c3 += 1) + s1(c3, c1); + s2(c1 + 1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/chosol-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-0.in new file mode 100644 index 00000000000..81fde503f74 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[i] -> [0, i, 0, 0] : i >= 2 and i <= n; s1[i, j] -> [1, j, 0, i] : j >= 1 and j <= -1 + i and i <= n; s2[i] -> [1, -1 + i, 1, 0] : i >= 2 and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/chosol-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-1.c new file mode 100644 index 00000000000..464ee493499 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-1.c @@ -0,0 +1,9 @@ +{ + for (int c1 = 2; c1 <= n; c1 += 1) + s0(c1); + for (int c1 = 1; c1 < n; c1 += 1) { + for (int c3 = c1 + 1; c3 <= n; c3 += 1) + s1(c3, c1); + s2(c1 + 1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/chosol-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-1.in new file mode 100644 index 00000000000..b5abf2917e8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/chosol-1.in @@ -0,0 +1,3 @@ +[n] -> { s0[i] -> [0, i, 0, 0] : i >= 2 and i <= n; s1[i, j] -> [1, j, 0, i] : j >= 1 and j <= -1 + i and i <= n; s2[i] -> [1, -1 + i, 1, 0] : i >= 2 and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 1; [i0, i1, i2, i3] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-0.c new file mode 100644 index 00000000000..6340134fcdb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-0.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 <= 8; c0 += 1) + for (int c1 = 0; c1 <= 7; c1 += 1) { + if (c0 >= 2 && c0 <= 6 && c1 <= 4) + s1(c0, c1); + if (c1 + 1 >= c0) + s0(c0, c1); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-0.in new file mode 100644 index 00000000000..a3fa3b1652d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-0.in @@ -0,0 +1,3 @@ +{ s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_1 <= 6 and In_2 >= 0 and In_2 <= 4; s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_2 >= -1 + In_1 and In_2 <= 7 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 1; [i0, i1] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-1.c new file mode 100644 index 00000000000..f4ec0e9c066 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-1.c @@ -0,0 +1,15 @@ +for (int c0 = 1; c0 <= 8; c0 += 1) { + if (c0 >= 2) { + if (c0 <= 6) + for (int c1 = 0; c1 < c0 - 1; c1 += 1) + s1(c0, c1); + for (int c1 = c0 - 1; c1 <= 4; c1 += 1) { + s1(c0, c1); + s0(c0, c1); + } + for (int c1 = max(5, c0 - 1); c1 <= 7; c1 += 1) + s0(c0, c1); + } else + for (int c1 = 0; c1 <= 7; c1 += 1) + s0(1, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-1.in new file mode 100644 index 00000000000..c6f7fa54a91 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-1.in @@ -0,0 +1,3 @@ +{ s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_1 <= 6 and In_2 >= 0 and In_2 <= 4; s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_2 >= -1 + In_1 and In_2 <= 7 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-2.c new file mode 100644 index 00000000000..f92e58368a5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-2.c @@ -0,0 +1,17 @@ +{ + for (int c1 = 0; c1 <= 7; c1 += 1) + s0(1, c1); + for (int c0 = 2; c0 <= 6; c0 += 1) { + for (int c1 = 0; c1 < c0 - 1; c1 += 1) + s1(c0, c1); + for (int c1 = c0 - 1; c1 <= 4; c1 += 1) { + s1(c0, c1); + s0(c0, c1); + } + for (int c1 = 5; c1 <= 7; c1 += 1) + s0(c0, c1); + } + for (int c0 = 7; c0 <= 8; c0 += 1) + for (int c1 = c0 - 1; c1 <= 7; c1 += 1) + s0(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-2.in new file mode 100644 index 00000000000..03a7b5df3a3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/code_gen-2.in @@ -0,0 +1,3 @@ +{ s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_1 <= 6 and In_2 >= 0 and In_2 <= 4; s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_2 >= -1 + In_1 and In_2 <= 7 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= -1; [i0, i1] -> separate[o0] : o0 >= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/collard-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/collard-0.c new file mode 100644 index 00000000000..413fbda482f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/collard-0.c @@ -0,0 +1,16 @@ +{ + for (int c4 = 1; c4 <= n; c4 += 1) + s2(c4); + for (int c1 = 1; c1 < n; c1 += 1) { + for (int c4 = 0; c4 < n - c1; c4 += 1) + s0(c1, n - c4); + for (int c3 = 0; c3 < n - c1; c3 += 1) + for (int c4 = c1 + 1; c4 <= n; c4 += 1) + s1(c1, n - c3, c4); + } + for (int c1 = 1; c1 <= n; c1 += 1) { + s4(c1); + for (int c3 = c1 + 1; c3 <= n; c3 += 1) + s3(c3, c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/collard-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/collard-0.in new file mode 100644 index 00000000000..d803da7574c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/collard-0.in @@ -0,0 +1,3 @@ +[n] -> { s1[i, j, k] -> [1, i, 1, n - j, k] : j >= 1 + i and k >= 1 + i and i >= 1 and j <= n and k <= n; s2[i] -> [0, 0, 0, 0, i] : i >= 1 and i <= n; s4[i] -> [2, i, 0, 0, 0] : i >= 1 and i <= n; s0[i, j] -> [1, i, 0, n - i, n - j] : i >= 1 and j >= 1 + i and j <= n; s3[i, j] -> [2, j, 1, i, j] : j >= 1 and j <= -1 + i and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 4; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-0.c new file mode 100644 index 00000000000..3e403ddcd33 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-0.c @@ -0,0 +1,2 @@ +for (int c0 = 0; c0 <= 99; c0 += 1) + s0(c0 % 10, c0 / 10); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-0.in new file mode 100644 index 00000000000..0c2b107517a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [i + 10j] : i >= 0 and i <= 9 and j >= 0 and j <= 9 } +{ : } +{ [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-1.c new file mode 100644 index 00000000000..a3e4458f146 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-1.c @@ -0,0 +1,2 @@ +for (int c0 = 0; c0 <= 99; c0 += 1) + s0(c0, c0 % 10, (c0 + 10) / 10 - 1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-1.in new file mode 100644 index 00000000000..e0c72739736 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/dagstuhl1-1.in @@ -0,0 +1,3 @@ +{s0[p,i,j] -> [p,i,j] : 0 <= i,j <= 9 && p = i+10j} +{ : } +{ [p,i,j] -> separate[o0] : o0 >= 2; [p,i,j] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-0.c new file mode 100644 index 00000000000..fbec13a719b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-0.c @@ -0,0 +1,7 @@ +for (int c0 = 0; c0 < n - 1; c0 += 1) { + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + s0(c0 + 1, n - c3); + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + for (int c6 = c0 + 2; c6 <= n; c6 += 1) + s1(c0 + 1, n - c3, c6); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-0.in new file mode 100644 index 00000000000..688f9580d9b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[i, j] -> [-1 + i, 0, n - i, n - j] : i >= 1 and j >= 1 + i and j <= n; s1[i, j, k] -> [-1 + i, 1, n - i, n - j] : j >= 1 + i and k >= 1 + i and i >= 1 and j <= n and k <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc1-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-1.c new file mode 100644 index 00000000000..768a04fbc4d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-1.c @@ -0,0 +1,17 @@ +{ + for (int c3 = 1; c3 <= n; c3 += 1) + s2(c3); + for (int c0 = 0; c0 < n - 1; c0 += 1) { + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + s0(c0 + 1, n - c3); + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + for (int c6 = c0 + 2; c6 <= n; c6 += 1) + s1(c0 + 1, n - c3, c6); + } + for (int c0 = n - 1; c0 < 2 * n - 1; c0 += 1) { + if (c0 >= n) + for (int c2 = -n + c0 + 2; c2 <= n; c2 += 1) + s3(c2, -n + c0 + 1); + s4(-n + c0 + 2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc1-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-1.in new file mode 100644 index 00000000000..c9135fff76c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-1.in @@ -0,0 +1,3 @@ +[n] -> { s1[i, j, k] -> [-1 + i, 1, n - i, n - j] : j >= 1 + i and k >= 1 + i and i >= 1 and j <= n and k <= n; s3[i, j] -> [-1 + n + j, 0, i, j] : j >= 1 and j <= -1 + i and i <= n; s4[i] -> [-2 + n + i, 1, 0, 0] : i >= 1 and i <= n; s0[i, j] -> [-1 + i, 0, n - i, n - j] : i >= 1 and j >= 1 + i and j <= n; s2[i] -> [0, 0, 0, i] : i >= 1 and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc1-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-2.c new file mode 100644 index 00000000000..768a04fbc4d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-2.c @@ -0,0 +1,17 @@ +{ + for (int c3 = 1; c3 <= n; c3 += 1) + s2(c3); + for (int c0 = 0; c0 < n - 1; c0 += 1) { + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + s0(c0 + 1, n - c3); + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + for (int c6 = c0 + 2; c6 <= n; c6 += 1) + s1(c0 + 1, n - c3, c6); + } + for (int c0 = n - 1; c0 < 2 * n - 1; c0 += 1) { + if (c0 >= n) + for (int c2 = -n + c0 + 2; c2 <= n; c2 += 1) + s3(c2, -n + c0 + 1); + s4(-n + c0 + 2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc1-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-2.in new file mode 100644 index 00000000000..6d9a1626a5b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc1-2.in @@ -0,0 +1,3 @@ +[n] -> { s1[i, j, k] -> [-1 + i, 1, n - i, n - j] : j >= 1 + i and k >= 1 + i and i >= 1 and j <= n and k <= n; s3[i, j] -> [-1 + n + j, 0, i, j] : j >= 1 and j <= -1 + i and i <= n; s4[i] -> [-2 + n + i, 1, 0, 0] : i >= 1 and i <= n; s0[i, j] -> [-1 + i, 0, n - i, n - j] : i >= 1 and j >= 1 + i and j <= n; s2[i] -> [0, 0, 0, i] : i >= 1 and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 1; [i0, i1, i2, i3] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc2-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-0.c new file mode 100644 index 00000000000..fbec13a719b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-0.c @@ -0,0 +1,7 @@ +for (int c0 = 0; c0 < n - 1; c0 += 1) { + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + s0(c0 + 1, n - c3); + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + for (int c6 = c0 + 2; c6 <= n; c6 += 1) + s1(c0 + 1, n - c3, c6); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc2-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-0.in new file mode 100644 index 00000000000..688f9580d9b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[i, j] -> [-1 + i, 0, n - i, n - j] : i >= 1 and j >= 1 + i and j <= n; s1[i, j, k] -> [-1 + i, 1, n - i, n - j] : j >= 1 + i and k >= 1 + i and i >= 1 and j <= n and k <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc2-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-1.c new file mode 100644 index 00000000000..768a04fbc4d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-1.c @@ -0,0 +1,17 @@ +{ + for (int c3 = 1; c3 <= n; c3 += 1) + s2(c3); + for (int c0 = 0; c0 < n - 1; c0 += 1) { + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + s0(c0 + 1, n - c3); + for (int c3 = 0; c3 < n - c0 - 1; c3 += 1) + for (int c6 = c0 + 2; c6 <= n; c6 += 1) + s1(c0 + 1, n - c3, c6); + } + for (int c0 = n - 1; c0 < 2 * n - 1; c0 += 1) { + if (c0 >= n) + for (int c2 = -n + c0 + 2; c2 <= n; c2 += 1) + s3(c2, -n + c0 + 1); + s4(-n + c0 + 2); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/fc2-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-1.in new file mode 100644 index 00000000000..c9135fff76c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/fc2-1.in @@ -0,0 +1,3 @@ +[n] -> { s1[i, j, k] -> [-1 + i, 1, n - i, n - j] : j >= 1 + i and k >= 1 + i and i >= 1 and j <= n and k <= n; s3[i, j] -> [-1 + n + j, 0, i, j] : j >= 1 and j <= -1 + i and i <= n; s4[i] -> [-2 + n + i, 1, 0, 0] : i >= 1 and i <= n; s0[i, j] -> [-1 + i, 0, n - i, n - j] : i >= 1 and j >= 1 + i and j <= n; s2[i] -> [0, 0, 0, i] : i >= 1 and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-0.c new file mode 100644 index 00000000000..db7f43707c3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-0.c @@ -0,0 +1,2 @@ +for (int c0 = 4 * floord(m - 1, 12) + 4; c0 <= floord(n, 3); c0 += 4) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-0.in new file mode 100644 index 00000000000..45faa57c37d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-0.in @@ -0,0 +1,3 @@ +[m, n] -> { s0[In_1] -> [In_1] : exists (e0 = [(In_1)/4]: 4e0 = In_1 and 3In_1 >= m and 3In_1 <= n) } +{ : } +[m, n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-1.c new file mode 100644 index 00000000000..bc879829073 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-1.c @@ -0,0 +1,2 @@ +for (int c0 = floord(m, 4); c0 <= n; c0 += 1) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-1.in new file mode 100644 index 00000000000..7ae72abb93e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-1.in @@ -0,0 +1,3 @@ +[m, n] -> { s0[In_1] -> [In_1] : 4In_1 >= -3 + m and In_1 <= n } +{ : } +[m, n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-2.c new file mode 100644 index 00000000000..ff5f3c33745 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-2.c @@ -0,0 +1,2 @@ +for (int c0 = 4 * floord(m, 4); c0 <= n; c0 += 1) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-2.in new file mode 100644 index 00000000000..73e1b8eb554 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-2.in @@ -0,0 +1,3 @@ +[m, n] -> { s0[In_1] -> [In_1] : exists (e0 = [(m)/4]: 4e0 <= m and 4e0 >= -3 + m and 4e0 <= In_1 and In_1 <= n) } +{ : } +[m, n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-3.c new file mode 100644 index 00000000000..e3c9728de91 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-3.c @@ -0,0 +1,2 @@ +for (int c0 = 3 * floord(m, 3) + 4 * floord(m, 4); c0 <= n; c0 += 1) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-3.in new file mode 100644 index 00000000000..1ff7e2c3861 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-3.in @@ -0,0 +1,3 @@ +[m, n] -> { s0[In_1] -> [In_1] : exists (e0 = [(m)/3], e1 = [(m)/4]: 4e1 <= m and 3e0 <= m and 4e1 >= -3 + m and 3e0 >= -2 + m and In_1 <= n and 4e1 <= In_1 - 3e0) } +{ : } +[m, n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-4.c b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-4.c new file mode 100644 index 00000000000..dc6ba0ae941 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-4.c @@ -0,0 +1,3 @@ +if (n >= 3 * floord(n + 1, 3)) + for (int c0 = m; c0 <= 5 * floord(n + 1, 3); c0 += 1) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-4.in b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-4.in new file mode 100644 index 00000000000..7a726c39379 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-4.in @@ -0,0 +1,3 @@ +[n, m] -> { s0[In_1] -> [In_1] : exists (e0 = [(1 + n)/3]: In_1 >= m and 5e0 >= In_1 and 3e0 <= n and 3e0 >= -1 + n) } +{ : } +[n, m] -> { [i0] -> atomic[o0] : o0 <= -1; [i0] -> separate[o0] : o0 >= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-5.c b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-5.c new file mode 100644 index 00000000000..3e9f47d4ccc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-5.c @@ -0,0 +1,2 @@ +for (int c0 = 4 * floord(m, 32); c0 <= n; c0 += 1) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-5.in b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-5.in new file mode 100644 index 00000000000..cc24250ddaa --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-5.in @@ -0,0 +1,3 @@ +[m, n] -> { s0[In_1] -> [In_1] : exists (e0 = [(m)/32]: 32e0 <= m and 32e0 >= -31 + m and 4e0 <= In_1 and In_1 <= n) } +{ : } +[m, n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-6.c b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-6.c new file mode 100644 index 00000000000..743b0c938c5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-6.c @@ -0,0 +1,3 @@ +if (m >= 8 * floord(m + 1, 8)) + for (int c0 = 4 * floord(m + 1, 32); c0 <= n; c0 += 1) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-6.in b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-6.in new file mode 100644 index 00000000000..78d2be97e2a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/floor_bound-6.in @@ -0,0 +1,3 @@ +[m, n] -> { s0[In_1] -> [In_1] : exists (e0 = [(1 + m)/8], e1 = [(e0)/4]: 8e0 <= m and 8e0 >= -6 + m and 4e1 <= In_1 and In_1 <= n and 32e1 <= 1 + m and 32e1 >= -30 + m) } +{ : } +[m, n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gc-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/gc-0.c new file mode 100644 index 00000000000..d8234a378ce --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gc-0.c @@ -0,0 +1,2 @@ +for (int c0 = 2; c0 <= 8; c0 += 2) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gc-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/gc-0.in new file mode 100644 index 00000000000..063e35361f1 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gc-0.in @@ -0,0 +1,3 @@ +{ s0[In_1] -> [In_1] : exists (e0 = [(In_1)/2]: 2e0 = In_1 and In_1 >= 2 and In_1 <= 8) } +{ : } +{ [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ge-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/ge-0.c new file mode 100644 index 00000000000..1c22a5d9b0a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ge-0.c @@ -0,0 +1,7 @@ +for (int c0 = 2; c0 <= n; c0 += 1) + for (int c1 = 1; c1 <= n; c1 += 1) { + for (int c3 = 1; c3 < min(c0, c1); c3 += 1) + s1(c3, c0, c1); + if (c0 >= c1 + 1) + s0(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ge-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/ge-0.in new file mode 100644 index 00000000000..edd7c36ee61 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ge-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[k, i] -> [i, k, 1, 0] : k >= 1 and i >= 1 + k and i <= n; s1[k, i, j] -> [i, j, 0, k] : i >= 1 + k and j >= 1 + k and k >= 1 and i <= n and j <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ge-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/ge-1.c new file mode 100644 index 00000000000..1c22a5d9b0a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ge-1.c @@ -0,0 +1,7 @@ +for (int c0 = 2; c0 <= n; c0 += 1) + for (int c1 = 1; c1 <= n; c1 += 1) { + for (int c3 = 1; c3 < min(c0, c1); c3 += 1) + s1(c3, c0, c1); + if (c0 >= c1 + 1) + s0(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ge-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/ge-1.in new file mode 100644 index 00000000000..4a08142d506 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ge-1.in @@ -0,0 +1,3 @@ +[n] -> { s0[k, i] -> [i, k, 1, 0] : k >= 1 and i >= 1 + k and i <= n; s1[k, i, j] -> [i, j, 0, k] : i >= 1 + k and j >= 1 + k and k >= 1 and i <= n and j <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 1; [i0, i1, i2, i3] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/gist-0.c new file mode 100644 index 00000000000..4608d61d8db --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-0.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= n; c0 += 4) + for (int c1 = c0; c1 <= n; c1 += 3) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/gist-0.in new file mode 100644 index 00000000000..b2f3366f8d3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-1 + In_1)/4], e1 = [(-3 - In_1 + 4In_2)/12]: 4e0 = -1 + In_1 and 12e1 = -3 - In_1 + 4In_2 and In_1 >= 1 and In_2 >= In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/gist-1.c new file mode 100644 index 00000000000..8f1c692c8ea --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-1.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= n; c0 += 4) + for (int c1 = c0; c1 <= n; c1 += 8) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/gist-1.in new file mode 100644 index 00000000000..ecbf8e7b06e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-1.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-1 + In_1)/4], e1 = [(-In_1 + In_2)/8]: 4e0 = -1 + In_1 and 8e1 = -In_1 + In_2 and In_1 >= 1 and In_2 >= In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/gist-2.c new file mode 100644 index 00000000000..317498782d4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-2.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= n; c0 += 256) + for (int c1 = c0; c1 <= n; c1 += 8) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/gist-2.in new file mode 100644 index 00000000000..63edb52b5f7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-2.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-1 + In_1)/256], e1 = [(-1 + In_2)/8]: 256e0 = -1 + In_1 and 8e1 = -1 + In_2 and In_1 >= 1 and In_2 >= In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/gist-3.c new file mode 100644 index 00000000000..513f385c3c5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-3.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 < n; c0 += 4) + for (int c1 = c0 + 1; c1 <= n; c1 += 6) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/gist-3.in new file mode 100644 index 00000000000..43cac1243b8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-3.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-1 + In_1)/4], e1 = [(-1 - In_1 + In_2)/6]: 4e0 = -1 + In_1 and 6e1 = -1 - In_1 + In_2 and In_1 >= 1 and In_2 >= 1 + In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-4.c b/polly/lib/External/isl/test_inputs/codegen/omega/gist-4.c new file mode 100644 index 00000000000..a6f6fd001b0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-4.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= n; c0 += 6) + for (int c1 = c0; c1 <= n; c1 += 4) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-4.in b/polly/lib/External/isl/test_inputs/codegen/omega/gist-4.in new file mode 100644 index 00000000000..f67f837d598 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-4.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-1 + In_1)/6], e1 = [(-2 - In_1 + 3In_2)/12]: 6e0 = -1 + In_1 and 12e1 = -2 - In_1 + 3In_2 and In_1 >= 1 and In_2 >= In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-5.c b/polly/lib/External/isl/test_inputs/codegen/omega/gist-5.c new file mode 100644 index 00000000000..c2df61fb4e1 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-5.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= n; c0 += 12) + for (int c1 = c0; c1 <= n; c1 += 8) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/gist-5.in b/polly/lib/External/isl/test_inputs/codegen/omega/gist-5.in new file mode 100644 index 00000000000..8b192c132fd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/gist-5.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-1 + In_1)/12], e1 = [(-2 - In_1 + 3In_2)/24]: 12e0 = -1 + In_1 and 24e1 = -2 - In_1 + 3In_2 and In_1 >= 1 and In_2 >= In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/guard1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-0.c new file mode 100644 index 00000000000..555d644f561 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-0.c @@ -0,0 +1,2 @@ +if ((n - m + 2) % 3 == 0) + s0(n, m); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/guard1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-0.in new file mode 100644 index 00000000000..52964e26489 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-0.in @@ -0,0 +1,3 @@ +[n, m] -> { s0[n, m] -> [n, m] : exists (e0 = [(-2 - n + m)/3]: 3e0 = -2 - n + m) } +{ : } +[n, m] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/guard1-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-1.c new file mode 100644 index 00000000000..335c1b838fe --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-1.c @@ -0,0 +1,2 @@ +if ((n - m + 1) % 2 == 0) + s0(n, m); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/guard1-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-1.in new file mode 100644 index 00000000000..141f585d358 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/guard1-1.in @@ -0,0 +1,3 @@ +[n, m] -> { s0[n, m] -> [n, m] : exists (e0 = [(-1 - n + m)/2]: 2e0 = -1 - n + m) } +{ : } +[n, m] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/hpf-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/hpf-0.c new file mode 100644 index 00000000000..c676558941f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/hpf-0.c @@ -0,0 +1,4 @@ +if (P2 >= 0 && P2 <= 3 && P1 == P2) + for (int c0 = 0; c0 <= min(2, -P2 + 4); c0 += 1) + for (int c2 = (-P2 - c0 + 6) % 3; c2 <= 3; c2 += 3) + s0(c0, c0, c2, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/hpf-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/hpf-0.in new file mode 100644 index 00000000000..e697792ea66 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/hpf-0.in @@ -0,0 +1,3 @@ +[P1, P2] -> { s0[In_1, In_1, In_3, In_3] -> [In_1, In_1, In_3, In_3] : exists (e0 = [(-2P2 - 2In_1 + In_3)/3]: P1 = P2 and 3e0 = -2P2 - 2In_1 + In_3 and P2 >= 0 and P2 <= 3 and In_1 <= 4 - P2 and In_1 >= 0 and In_1 <= 2 and In_3 >= 0 and In_3 <= 3) } +{ : } +[P2, P1] -> { [i0, i1, i2, i3] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-0.c new file mode 100644 index 00000000000..bc8d3370a6d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-0.c @@ -0,0 +1,12 @@ +if (m <= 1) { + for (int c0 = 1; c0 <= n; c0 += 1) + for (int c1 = 1; c1 <= n; c1 += 1) + s2(c0, c1); +} else if (n >= m + 1) { + for (int c0 = 1; c0 <= n; c0 += 1) + for (int c1 = 1; c1 <= n; c1 += 1) + s0(c0, c1); +} else + for (int c0 = 1; c0 <= n; c0 += 1) + for (int c1 = 1; c1 <= n; c1 += 1) + s1(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-0.in new file mode 100644 index 00000000000..93f3f7c2bc8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-0.in @@ -0,0 +1,3 @@ +[n, m] -> { s2[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= n and In_2 >= 1 and In_2 <= n and m <= 1; s0[In_1, In_2] -> [In_1, In_2] : m >= 2 and m <= -1 + n and In_1 >= 1 and In_1 <= n and In_2 >= 1 and In_2 <= n; s1[In_1, In_2] -> [In_1, In_2] : In_1 <= n and In_2 <= n and m >= n and In_1 >= 1 and In_2 >= 1 and m >= 2 } +{ : } +[n, m] -> { [i0, i1] -> atomic[o0] : o0 <= 1; [i0, i1] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-1.c new file mode 100644 index 00000000000..18ca3702186 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-1.c @@ -0,0 +1,9 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) { + if (n >= 2) + s0(c0); + for (int c1 = 1; c1 <= 100; c1 += 1) { + if (n >= 2) + s1(c0, c1); + s2(c0, c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-1.in new file mode 100644 index 00000000000..0258439fff7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-1.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1] -> [In_1,0] : In_1 >= 1 and In_1 <= 100 and n >= 2; s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and n >= 2; s2[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 } +{ : } +[n] -> { [i0,i1] -> separate[o0] : o0 >= 2; [i0,i1] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-2.c new file mode 100644 index 00000000000..d1ce579aa97 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-2.c @@ -0,0 +1,11 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) { + if (n >= 2) { + s0(c0); + for (int c1 = 1; c1 <= 100; c1 += 1) { + s1(c0, c1); + s2(c0, c1); + } + } else + for (int c1 = 1; c1 <= 100; c1 += 1) + s2(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-2.in new file mode 100644 index 00000000000..0a220ee3a54 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-2.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1] -> [In_1,0] : In_1 >= 1 and In_1 <= 100 and n >= 2; s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and n >= 2; s2[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 } +{ : } +[n] -> { [i0,i1] -> separate[o0] : o0 >= 1; [i0,i1] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-3.c new file mode 100644 index 00000000000..570cbe5556f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-3.c @@ -0,0 +1,12 @@ +if (n >= 2) { + for (int c0 = 1; c0 <= 100; c0 += 1) { + s0(c0); + for (int c1 = 1; c1 <= 100; c1 += 1) { + s1(c0, c1); + s2(c0, c1); + } + } +} else + for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + s2(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-3.in new file mode 100644 index 00000000000..a0315f1a7b1 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-3.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1] -> [In_1,0] : In_1 >= 1 and In_1 <= 100 and n >= 2; s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and n >= 2; s2[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 } +{ : } +[n] -> { [i0,i1] -> separate[o0] : o0 >= 0; [i0,i1] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-4.c b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-4.c new file mode 100644 index 00000000000..fa81628ade8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-4.c @@ -0,0 +1,7 @@ +for (int c0 = 4; c0 <= 100; c0 += 4) { + for (int c1 = 1; c1 <= 100; c1 += 1) + s0(c0, c1); + if (c0 >= 8 && c0 <= 96) + for (int c1 = 10; c1 <= 100; c1 += 1) + s1(c0 + 2, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-4.in b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-4.in new file mode 100644 index 00000000000..30dc8dc24d2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-4.in @@ -0,0 +1,3 @@ +{ s1[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-2 + In_1)/4]: 4e0 = -2 + In_1 and In_1 >= 10 and In_1 <= 98 and In_2 >= 10 and In_2 <= 100); s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(In_1)/4]: 4e0 = In_1 and In_1 >= 4 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100) } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 1; [i0, i1] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-5.c b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-5.c new file mode 100644 index 00000000000..fa81628ade8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-5.c @@ -0,0 +1,7 @@ +for (int c0 = 4; c0 <= 100; c0 += 4) { + for (int c1 = 1; c1 <= 100; c1 += 1) + s0(c0, c1); + if (c0 >= 8 && c0 <= 96) + for (int c1 = 10; c1 <= 100; c1 += 1) + s1(c0 + 2, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/if_then-5.in b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-5.in new file mode 100644 index 00000000000..87a40f4733a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/if_then-5.in @@ -0,0 +1,3 @@ +{ s1[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-2 + In_1)/4]: 4e0 = -2 + In_1 and In_1 >= 10 and In_1 <= 98 and In_2 >= 10 and In_2 <= 100); s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(In_1)/4]: 4e0 = In_1 and In_1 >= 4 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100) } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter1-0.c new file mode 100644 index 00000000000..c15c86b2f6b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter1-0.c @@ -0,0 +1,2 @@ +for (int c0 = 2; c0 <= 9; c0 += 1) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter1-0.in new file mode 100644 index 00000000000..8b876786027 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter1-0.in @@ -0,0 +1,3 @@ +{ s0[In_1] -> [In_1] : In_1 >= 2 and In_1 <= 9 } +{ : } +{ [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter2-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter2-0.c new file mode 100644 index 00000000000..5506929a106 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter2-0.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= 10; c0 += 1) + for (int c1 = 10; c1 <= 100; c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter2-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter2-0.in new file mode 100644 index 00000000000..16ea0df1805 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter2-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 10 and In_2 >= 10 and In_2 <= 100 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter3-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter3-0.c new file mode 100644 index 00000000000..43b6e3aa0f6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter3-0.c @@ -0,0 +1,3 @@ +for (int c0 = 2; c0 <= 8; c0 += 1) + for (int c1 = c0 + 1; c1 <= 9; c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter3-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter3-0.in new file mode 100644 index 00000000000..fc26493e28e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter3-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_2 >= 1 + In_1 and In_2 <= 9 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter4-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter4-0.c new file mode 100644 index 00000000000..65e37023ff3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter4-0.c @@ -0,0 +1,3 @@ +for (int c0 = 2; c0 <= 9; c0 += 1) + for (int c1 = c0 + 1; c1 <= 2 * c0; c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter4-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter4-0.in new file mode 100644 index 00000000000..94001d5251d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter4-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_2 >= 1 + In_1 and In_2 <= 2In_1 and In_1 <= 9 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter5-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter5-0.c new file mode 100644 index 00000000000..66c7c0971f8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter5-0.c @@ -0,0 +1,3 @@ +for (int c0 = 2; c0 <= 9; c0 += 1) + for (int c1 = c0 + 1; c1 <= min(16, 2 * c0); c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter5-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter5-0.in new file mode 100644 index 00000000000..1e4f739447e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter5-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_2 >= 1 + In_1 and In_2 <= 2In_1 and In_2 <= 16 and In_1 <= 9 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter6-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-0.c new file mode 100644 index 00000000000..a0346b69cdd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-0.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= 5; c0 += 1) + for (int c1 = 12; c1 <= 17; c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter6-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-0.in new file mode 100644 index 00000000000..1b8ed2b3c04 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 1 and In_1 <= 5 and In_2 >= 12 and In_2 <= 17 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter6-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-1.c new file mode 100644 index 00000000000..daccd39be7a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-1.c @@ -0,0 +1,2 @@ +for (int c0 = 46; c0 <= 70; c0 += 12) + s0(c0, (17 * c0 - 170) / 12); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter6-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-1.in new file mode 100644 index 00000000000..4ee2ad6608d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter6-1.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, o1] : 12In_2 = -170 + 17In_1 and 12o1 = -170 + 17In_1 and In_1 >= 46 and In_1 <= 70 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter7-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter7-0.c new file mode 100644 index 00000000000..2606890886e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter7-0.c @@ -0,0 +1,2 @@ +for (int c0 = 1; c0 <= 3; c0 += 2) + s0(c0, (-3 * c0 + 15) / 2); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter7-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter7-0.in new file mode 100644 index 00000000000..90d3efb7de0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter7-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, o1] : 2In_2 = 15 - 3In_1 and 2o1 = 15 - 3In_1 and In_1 <= 3 and In_1 >= 1 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter8-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter8-0.c new file mode 100644 index 00000000000..a33fc49b76a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter8-0.c @@ -0,0 +1,2 @@ +for (int c0 = max(exprVar2 + 1, exprVar2 + 8 * floord(-exprVar2 + exprVar1 - 1, 8) + 9); c0 <= 16; c0 += 8) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter8-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter8-0.in new file mode 100644 index 00000000000..682928048df --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter8-0.in @@ -0,0 +1,3 @@ +[exprVar2, exprVar3, exprVar1] -> { s0[In_1] -> [In_1] : exists (e0 = [(-1 - exprVar2 + In_1)/8]: exprVar3 = 0 and 8e0 = -1 - exprVar2 + In_1 and exprVar1 >= 1 and In_1 >= 1 + exprVar1 and In_1 <= 16 and In_1 >= 1 + exprVar2) } +[exprVar3, exprVar2, exprVar1] -> { : exists (e0: exprVar3 = 0 and 8e0 >= -15 + exprVar2 and exprVar2 <= 15 and exprVar1 >= 1 and 8e0 <= exprVar2 - exprVar1) } +[exprVar2, exprVar3, exprVar1] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter9-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/iter9-0.c new file mode 100644 index 00000000000..9b8522ba7d8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter9-0.c @@ -0,0 +1,11 @@ +for (int c0 = 1; c0 <= 15; c0 += 1) { + if (((-exprVar1 + 15) % 8) + c0 <= 15) { + s4(c0); + s0(c0); + s3(c0); + s2(c0); + s1(c0); + } + if (((-exprVar1 + 15) % 8) + c0 <= 15 || (c0 >= exprVar1 + 1 && (exprVar1 - c0 + 1) % 8 == 0)) + s5(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/iter9-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/iter9-0.in new file mode 100644 index 00000000000..9596d73727c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/iter9-0.in @@ -0,0 +1,3 @@ +[exprVar2, exprVar1] -> { s3[In_1] -> [In_1] : exists (e0: exprVar2 = 0 and 8e0 >= -15 + exprVar1 and exprVar1 <= 15 and In_1 >= 1 and 8e0 <= exprVar1 - In_1); s4[In_1] -> [In_1] : exists (e0: exprVar2 = 0 and 8e0 >= -15 + exprVar1 and exprVar1 <= 15 and In_1 >= 1 and 8e0 <= exprVar1 - In_1); s1[In_1] -> [In_1] : exists (e0: exprVar2 = 0 and 8e0 >= -15 + exprVar1 and exprVar1 <= 15 and In_1 >= 1 and 8e0 <= exprVar1 - In_1); s5[In_1] -> [In_1] : (exists (e0: exprVar2 = 0 and 8e0 >= -15 + exprVar1 and exprVar1 <= 15 and In_1 >= 1 and 8e0 <= exprVar1 - In_1)) or (exists (e0 = [(-1 - exprVar1 + In_1)/8]: exprVar2 = 0 and 8e0 = -1 - exprVar1 + In_1 and In_1 >= 1 + exprVar1 and In_1 >= 1 and In_1 <= 15)); s0[In_1] -> [In_1] : exists (e0: exprVar2 = 0 and 8e0 >= -15 + exprVar1 and exprVar1 <= 15 and In_1 >= 1 and 8e0 <= exprVar1 - In_1); s2[In_1] -> [In_1] : exists (e0: exprVar2 = 0 and 8e0 >= -15 + exprVar1 and exprVar1 <= 15 and In_1 >= 1 and 8e0 <= exprVar1 - In_1) } +[exprVar2, exprVar1] -> { : exprVar2 = 0 and exprVar1 <= 15 } +[exprVar2, exprVar1] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur00-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lefur00-0.c new file mode 100644 index 00000000000..aab26208811 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur00-0.c @@ -0,0 +1,5 @@ +for (int c0 = 0; c0 <= 15; c0 += 1) + for (int c1 = max(2 * c0 - 15, c0 / 2); c1 <= min(15, c0 + 1); c1 += 1) + for (int c2 = max(max(max(1, 67 * c0 - (c0 + 1) / 3), 67 * c1 - (c1 + 2) / 3), 133 * c0 - 67 * c1 + (c0 + c1 + 1) / 3 - 66); c2 <= min(min(1000, 100 * c0 + 99), 133 * c0 - 67 * c1 + floord(c0 + c1 - 1, 3) + 133); c2 += 1) + for (int c3 = max(max(c2, 200 * c0 - c2), 100 * c1 + (c2 + 1) / 2); c3 <= min(min(2 * c2 + 1, 200 * c0 - c2 + 199), 100 * c1 + (c2 + 1) / 2 + 99); c3 += 1) + s0(c0, c1, c2, c3); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur00-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lefur00-0.in new file mode 100644 index 00000000000..cf99c811b7e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur00-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4] -> [In_1, In_2, In_3, In_4] : In_3 >= 1 and In_4 >= In_3 and In_4 <= 1 + 2In_3 and In_3 <= 1000 and In_4 >= 200In_1 - In_3 and In_4 <= 199 + 200In_1 - In_3 and 2In_4 >= 200In_2 + In_3 and 2In_4 <= 199 + 200In_2 + In_3 } +{ : } +{ [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-0.c new file mode 100644 index 00000000000..aab26208811 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-0.c @@ -0,0 +1,5 @@ +for (int c0 = 0; c0 <= 15; c0 += 1) + for (int c1 = max(2 * c0 - 15, c0 / 2); c1 <= min(15, c0 + 1); c1 += 1) + for (int c2 = max(max(max(1, 67 * c0 - (c0 + 1) / 3), 67 * c1 - (c1 + 2) / 3), 133 * c0 - 67 * c1 + (c0 + c1 + 1) / 3 - 66); c2 <= min(min(1000, 100 * c0 + 99), 133 * c0 - 67 * c1 + floord(c0 + c1 - 1, 3) + 133); c2 += 1) + for (int c3 = max(max(c2, 200 * c0 - c2), 100 * c1 + (c2 + 1) / 2); c3 <= min(min(2 * c2 + 1, 200 * c0 - c2 + 199), 100 * c1 + (c2 + 1) / 2 + 99); c3 += 1) + s0(c0, c1, c2, c3); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-0.in new file mode 100644 index 00000000000..cf99c811b7e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4] -> [In_1, In_2, In_3, In_4] : In_3 >= 1 and In_4 >= In_3 and In_4 <= 1 + 2In_3 and In_3 <= 1000 and In_4 >= 200In_1 - In_3 and In_4 <= 199 + 200In_1 - In_3 and 2In_4 >= 200In_2 + In_3 and 2In_4 <= 199 + 200In_2 + In_3 } +{ : } +{ [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-1.c new file mode 100644 index 00000000000..aab26208811 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-1.c @@ -0,0 +1,5 @@ +for (int c0 = 0; c0 <= 15; c0 += 1) + for (int c1 = max(2 * c0 - 15, c0 / 2); c1 <= min(15, c0 + 1); c1 += 1) + for (int c2 = max(max(max(1, 67 * c0 - (c0 + 1) / 3), 67 * c1 - (c1 + 2) / 3), 133 * c0 - 67 * c1 + (c0 + c1 + 1) / 3 - 66); c2 <= min(min(1000, 100 * c0 + 99), 133 * c0 - 67 * c1 + floord(c0 + c1 - 1, 3) + 133); c2 += 1) + for (int c3 = max(max(c2, 200 * c0 - c2), 100 * c1 + (c2 + 1) / 2); c3 <= min(min(2 * c2 + 1, 200 * c0 - c2 + 199), 100 * c1 + (c2 + 1) / 2 + 99); c3 += 1) + s0(c0, c1, c2, c3); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-1.in new file mode 100644 index 00000000000..bc9611db469 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur01-1.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4] -> [In_1, In_2, In_3, In_4] : In_3 >= 1 and In_4 >= In_3 and In_4 <= 1 + 2In_3 and In_3 <= 1000 and In_4 >= 200In_1 - In_3 and In_4 <= 199 + 200In_1 - In_3 and 2In_4 >= 200In_2 + In_3 and 2In_4 <= 199 + 200In_2 + In_3 } +{ : } +{ [i0, i1, i2, i3] -> atomic[o0] : o0 <= 1; [i0, i1, i2, i3] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur03-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lefur03-0.c new file mode 100644 index 00000000000..05ac73f3a44 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur03-0.c @@ -0,0 +1,7 @@ +for (int c0 = 0; c0 <= 3; c0 += 1) + for (int c1 = max(2 * c0 - 3, c0 / 2); c1 <= min(3, c0 + 1); c1 += 1) + for (int c2 = c0; c2 <= min(min(3, 2 * c0 - c1 + 1), 3 * c1 + 2); c2 += 1) + for (int c3 = max(max(max(0, c1 - (-c1 + 3) / 3), c0 - (-c2 + 3) / 3), c2 + floord(3 * c1 - c2 - 1, 6)); c3 <= min(3, c0 + 1); c3 += 1) + for (int c4 = max(max(max(max(-200 * c1 + 400 * c3 - 199, 250 * c3 + 1), 667 * c0 - 333 * c1 - (c0 + c1 + 3) / 3 - 332), 333 * c1 + c1 / 3), 333 * c2 + (c2 + 1) / 3); c4 <= min(min(min(min(1000, 500 * c0 + 499), -200 * c1 + 400 * c3 + 400), 333 * c2 - (-c2 + 3) / 3 + 333), 333 * c3 - (-c3 + 3) / 3 + 334); c4 += 1) + for (int c5 = max(max(max(c4, 1000 * c0 - c4), 1000 * c3 - 2 * c4 + 2), 500 * c1 + (c4 + 1) / 2); c5 <= min(min(min(2 * c4 + 1, 1000 * c0 - c4 + 999), 1000 * c3 - 2 * c4 + 1001), 500 * c1 + (c4 + 1) / 2 + 499); c5 += 1) + s0(c0, c1, c2, c3, c4, c5); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur03-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lefur03-0.in new file mode 100644 index 00000000000..890f413e743 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur03-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5, In_6] -> [In_1, In_2, In_3, In_4, In_5, In_6] : In_6 >= In_5 and In_6 <= 1 + 2In_5 and In_5 <= 1000 and In_6 >= 1000In_1 - In_5 and In_6 <= 999 + 1000In_1 - In_5 and In_6 >= 2 + 1000In_4 - 2In_5 and In_6 <= 1001 + 1000In_4 - 2In_5 and In_4 >= 0 and 2In_6 >= 1000In_2 + In_5 and 2In_6 <= 999 + 1000In_2 + In_5 and 3In_5 >= -1 + 1000In_3 and 3In_5 <= 998 + 1000In_3 } +{ : } +{ [i0, i1, i2, i3, i4, i5] -> separate[o0] : o0 >= 5; [i0, i1, i2, i3, i4, i5] -> atomic[o0] : o0 <= 4 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur04-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lefur04-0.c new file mode 100644 index 00000000000..124d0f15cb5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur04-0.c @@ -0,0 +1,8 @@ +for (int c0 = 0; c0 <= 3; c0 += 1) + for (int c1 = max(2 * c0 - 3, c0 / 2); c1 <= min(3, c0 + 1); c1 += 1) + for (int c2 = c0; c2 <= min(min(3, 2 * c0 - c1 + 1), 3 * c1 + 2); c2 += 1) + for (int c3 = max(max(max(c1 - (-c1 + 3) / 3, c0 - (-c2 + 3) / 3), c2 - (c2 + 2) / 3), c2 + floord(3 * c1 - c2 - 1, 6)); c3 <= min(3, c0 + c2 / 3 + 1); c3 += 1) + for (int c5 = max(max(max(max(0, 2 * c3 - 4), c1 - (-c1 + 3) / 3), c2 - (c2 + 3) / 3), c3 - (c3 + 3) / 3); c5 <= min(min(c1 + 1, c3), -c2 + 2 * c3 - (c2 + 3) / 3 + 2); c5 += 1) + for (int c6 = max(max(max(max(max(-200 * c1 + 400 * c3 - 199, 250 * c3 + 1), 1000 * c0 - 500 * c5 - 501), 667 * c0 - 333 * c1 - (c0 + c1 + 3) / 3 - 332), 333 * c1 + c1 / 3), 333 * c2 + (c2 + 1) / 3); c6 <= min(min(min(min(min(min(1000, 500 * c0 + 499), -200 * c1 + 400 * c3 + 400), 500 * c5 + 501), 1000 * c0 - 500 * c5 + 997), 333 * c2 - (-c2 + 3) / 3 + 333), 333 * c3 - (-c3 + 3) / 3 + 334); c6 += 1) + for (int c7 = max(max(max(max(500 * c5 + 2, c6), 1000 * c0 - c6), 1000 * c3 - 2 * c6 + 2), 500 * c1 + (c6 + 1) / 2); c7 <= min(min(min(min(500 * c5 + 501, 2 * c6 + 1), 1000 * c0 - c6 + 999), 1000 * c3 - 2 * c6 + 1001), 500 * c1 + (c6 + 1) / 2 + 499); c7 += 1) + s0(c0, c1, c2, c3, c2 / 3, c5, c6, c7); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lefur04-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lefur04-0.in new file mode 100644 index 00000000000..c50a0da4c51 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lefur04-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5, In_6, In_7, In_8] -> [In_1, In_2, In_3, In_4, In_5, In_6, In_7, In_8] : In_7 >= 1000In_5 and In_8 >= In_7 and In_8 <= 501 + 500In_6 and In_8 <= 1 + 2In_7 and In_7 <= 999 + 1000In_5 and In_7 <= 1000 and In_8 >= 1000In_1 - In_7 and In_8 <= 999 + 1000In_1 - In_7 and 2In_8 >= 1000In_2 + In_7 and 2In_8 <= 999 + 1000In_2 + In_7 and 3In_7 >= -1 + 1000In_3 and 3In_7 <= 998 + 1000In_3 and In_8 >= 2 + 500In_6 and In_6 >= 0 and In_8 >= 2 + 1000In_4 - 2In_7 and In_8 <= 1001 + 1000In_4 - 2In_7 } +{ : } +{ [i0, i1, i2, i3, i4, i5, i6, i7] -> atomic[o0] : o0 <= 6; [i0, i1, i2, i3, i4, i5, i6, i7] -> separate[o0] : o0 >= 7 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-0.c new file mode 100644 index 00000000000..f7b1ae9ae7b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-0.c @@ -0,0 +1,9 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + if (c0 <= 60) + s0(c0, c1, c2, c3, c4); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-0.in new file mode 100644 index 00000000000..31ae11ad533 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 5; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 4 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-1.c new file mode 100644 index 00000000000..3910e4f264d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-1.c @@ -0,0 +1,13 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) { + if (c0 >= 61) { + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-1.in new file mode 100644 index 00000000000..44de4acbb94 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-1.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 4; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-2.c new file mode 100644 index 00000000000..8737f3c50bf --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-2.c @@ -0,0 +1,14 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) { + if (c0 >= 61) { + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-2.in new file mode 100644 index 00000000000..241fbb96293 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-2.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-3.c new file mode 100644 index 00000000000..4d73f89d63d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-3.c @@ -0,0 +1,15 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) { + if (c0 >= 61) { + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-3.in new file mode 100644 index 00000000000..a50a9ece72c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-3.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 2; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-4.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-4.c new file mode 100644 index 00000000000..7d2de29261c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-4.c @@ -0,0 +1,16 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) { + if (c0 >= 61) { + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-4.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-4.in new file mode 100644 index 00000000000..db7d85c8eed --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-4.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 1; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-5.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-5.c new file mode 100644 index 00000000000..2a24f683e66 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-5.c @@ -0,0 +1,16 @@ +{ + for (int c0 = 1; c0 <= 60; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + for (int c0 = 61; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift1-5.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-5.in new file mode 100644 index 00000000000..2f9d5786569 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift1-5.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 0; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-0.c new file mode 100644 index 00000000000..181d6e58fc3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-0.c @@ -0,0 +1,9 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + if (c0 >= 5 && c0 <= 60) + s0(c0, c1, c2, c3, c4); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-0.in new file mode 100644 index 00000000000..5df0444130e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 5 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 5; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 4 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-1.c new file mode 100644 index 00000000000..f914743ecc2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-1.c @@ -0,0 +1,16 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) { + if (c0 >= 61) { + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else if (c0 <= 4) { + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-1.in new file mode 100644 index 00000000000..7ef2a8d9a9e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-1.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 5 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 4; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-2.c new file mode 100644 index 00000000000..8b6dbafc507 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-2.c @@ -0,0 +1,18 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) { + if (c0 >= 61) { + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else if (c0 <= 4) { + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-2.in new file mode 100644 index 00000000000..3e9a9782460 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-2.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 5 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-3.c new file mode 100644 index 00000000000..1a5954a8081 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-3.c @@ -0,0 +1,20 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) { + if (c0 >= 61) { + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else if (c0 <= 4) { + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-3.in new file mode 100644 index 00000000000..0580f079dbc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-3.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 5 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 2; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-4.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-4.c new file mode 100644 index 00000000000..d1d04d6507d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-4.c @@ -0,0 +1,22 @@ +for (int c0 = 1; c0 <= 100; c0 += 1) { + if (c0 >= 61) { + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else if (c0 <= 4) { + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + } else + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-4.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-4.in new file mode 100644 index 00000000000..d64462ae11b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-4.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 5 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 1; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-5.c b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-5.c new file mode 100644 index 00000000000..16bd6dbafd7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-5.c @@ -0,0 +1,22 @@ +{ + for (int c0 = 1; c0 <= 4; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); + for (int c0 = 5; c0 <= 60; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) { + s1(c0, c1, c2, c3, c4); + s0(c0, c1, c2, c3, c4); + } + for (int c0 = 61; c0 <= 100; c0 += 1) + for (int c1 = 1; c1 <= 100; c1 += 1) + for (int c2 = 1; c2 <= 100; c2 += 1) + for (int c3 = 1; c3 <= 100; c3 += 1) + for (int c4 = 1; c4 <= 100; c4 += 1) + s1(c0, c1, c2, c3, c4); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lift2-5.in b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-5.in new file mode 100644 index 00000000000..37a57befecd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lift2-5.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 5 and In_1 <= 60 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100; s1[In_1, In_2, In_3, In_4, In_5] -> [In_1, In_2, In_3, In_4, In_5] : In_1 >= 1 and In_1 <= 100 and In_2 >= 1 and In_2 <= 100 and In_3 >= 1 and In_3 <= 100 and In_4 >= 1 and In_4 <= 100 and In_5 >= 1 and In_5 <= 100 } +{ : } +{ [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 0; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu-0.c new file mode 100644 index 00000000000..e71f47bbd58 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-0.c @@ -0,0 +1,10 @@ +for (int c0 = 1; c0 < n; c0 += 64) + for (int c1 = c0 - 1; c1 <= n; c1 += 64) + for (int c2 = c0; c2 <= n; c2 += 1) { + for (int c3 = c0; c3 <= min(min(c0 + 63, c1 + 62), c2 - 1); c3 += 1) + for (int c4 = max(c1, c3 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s1(c3, c4, c2); + if (c0 + 63 >= c2) + for (int c4 = max(c1, c2 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s0(c2, c4); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu-0.in new file mode 100644 index 00000000000..510d677c350 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-0.in @@ -0,0 +1,3 @@ +[n] -> { s1[k, i, j] -> [t1, t2, j, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and i >= 1 + k and j >= 1 + k and k >= 1 and i <= n and j <= n); s0[k, i] -> [t1, t2, k, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and k >= 1 and i >= 1 + k and i <= n) } +{ : } +[n] -> { [t1, t2, i2, i3, i4] -> separate[o0] : o0 >= 5; [t1, t2, i2, i3, i4] -> atomic[o0] : o0 <= 4 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu-1.c new file mode 100644 index 00000000000..e71f47bbd58 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-1.c @@ -0,0 +1,10 @@ +for (int c0 = 1; c0 < n; c0 += 64) + for (int c1 = c0 - 1; c1 <= n; c1 += 64) + for (int c2 = c0; c2 <= n; c2 += 1) { + for (int c3 = c0; c3 <= min(min(c0 + 63, c1 + 62), c2 - 1); c3 += 1) + for (int c4 = max(c1, c3 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s1(c3, c4, c2); + if (c0 + 63 >= c2) + for (int c4 = max(c1, c2 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s0(c2, c4); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu-1.in new file mode 100644 index 00000000000..2e8f7efa535 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-1.in @@ -0,0 +1,3 @@ +[n] -> { s1[k, i, j] -> [t1, t2, j, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and i >= 1 + k and j >= 1 + k and k >= 1 and i <= n and j <= n); s0[k, i] -> [t1, t2, k, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and k >= 1 and i >= 1 + k and i <= n) } +{ : } +[n] -> { [t1, t2, i2, i3, i4] -> separate[o0] : o0 >= 4; [t1, t2, i2, i3, i4] -> atomic[o0] : o0 <= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu-2.c new file mode 100644 index 00000000000..e71f47bbd58 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-2.c @@ -0,0 +1,10 @@ +for (int c0 = 1; c0 < n; c0 += 64) + for (int c1 = c0 - 1; c1 <= n; c1 += 64) + for (int c2 = c0; c2 <= n; c2 += 1) { + for (int c3 = c0; c3 <= min(min(c0 + 63, c1 + 62), c2 - 1); c3 += 1) + for (int c4 = max(c1, c3 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s1(c3, c4, c2); + if (c0 + 63 >= c2) + for (int c4 = max(c1, c2 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s0(c2, c4); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu-2.in new file mode 100644 index 00000000000..ab2ec412b06 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-2.in @@ -0,0 +1,3 @@ +[n] -> { s1[k, i, j] -> [t1, t2, j, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and i >= 1 + k and j >= 1 + k and k >= 1 and i <= n and j <= n); s0[k, i] -> [t1, t2, k, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and k >= 1 and i >= 1 + k and i <= n) } +{ : } +[n] -> { [t1, t2, i2, i3, i4] -> separate[o0] : o0 >= 3; [t1, t2, i2, i3, i4] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu-3.c new file mode 100644 index 00000000000..3fd0d4eb543 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-3.c @@ -0,0 +1,14 @@ +for (int c0 = 1; c0 < n; c0 += 64) + for (int c1 = c0 - 1; c1 <= n; c1 += 64) { + for (int c2 = c0; c2 <= min(n, c0 + 63); c2 += 1) { + for (int c3 = c0; c3 <= min(c1 + 62, c2 - 1); c3 += 1) + for (int c4 = max(c1, c3 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s1(c3, c4, c2); + for (int c4 = max(c1, c2 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s0(c2, c4); + } + for (int c2 = c0 + 64; c2 <= n; c2 += 1) + for (int c3 = c0; c3 <= min(c0 + 63, c1 + 62); c3 += 1) + for (int c4 = max(c1, c3 + 1); c4 <= min(n, c1 + 63); c4 += 1) + s1(c3, c4, c2); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu-3.in new file mode 100644 index 00000000000..817db46120a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu-3.in @@ -0,0 +1,3 @@ +[n] -> { s1[k, i, j] -> [t1, t2, j, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and i >= 1 + k and j >= 1 + k and k >= 1 and i <= n and j <= n); s0[k, i] -> [t1, t2, k, k, i] : exists (e0 = [(-1 + t1)/64], e1 = [(t2)/64]: 64e0 = -1 + t1 and 64e1 = t2 and t1 >= -63 + k and t1 <= k and t2 >= -63 + i and t2 <= i and k >= 1 and i >= 1 + k and i <= n) } +{ : } +[n] -> { [t1, t2, i2, i3, i4] -> separate[o0] : o0 >= 2; [t1, t2, i2, i3, i4] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-0.c new file mode 100644 index 00000000000..da2571ac530 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-0.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 <= n; c0 += 1) + for (int c1 = 2; c1 <= n; c1 += 1) { + for (int c3 = 1; c3 < min(c0, c1); c3 += 1) + s1(c3, c1, c0); + if (c1 >= c0 + 1) + s0(c0, c1); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-0.in new file mode 100644 index 00000000000..5aae58cfb57 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[k, j] -> [k, j, 1, 0] : k >= 1 and j >= 1 + k and j <= n; s1[k, j, i] -> [i, j, 0, k] : j >= 1 + k and i >= 1 + k and k >= 1 and j <= n and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-1.c new file mode 100644 index 00000000000..da2571ac530 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-1.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 <= n; c0 += 1) + for (int c1 = 2; c1 <= n; c1 += 1) { + for (int c3 = 1; c3 < min(c0, c1); c3 += 1) + s1(c3, c1, c0); + if (c1 >= c0 + 1) + s0(c0, c1); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-1.in new file mode 100644 index 00000000000..06a860c43fe --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-1.in @@ -0,0 +1,3 @@ +[n] -> { s0[k, j] -> [k, j, 1, 0] : k >= 1 and j >= 1 + k and j <= n; s1[k, j, i] -> [i, j, 0, k] : j >= 1 + k and i >= 1 + k and k >= 1 and j <= n and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 1; [i0, i1, i2, i3] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-2.c new file mode 100644 index 00000000000..561ae1104b5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-2.c @@ -0,0 +1,11 @@ +if (n >= 2) + for (int c0 = 1; c0 <= n; c0 += 1) { + for (int c1 = 2; c1 <= c0; c1 += 1) + for (int c3 = 1; c3 < c1; c3 += 1) + s1(c3, c1, c0); + for (int c1 = c0 + 1; c1 <= n; c1 += 1) { + for (int c3 = 1; c3 < c0; c3 += 1) + s1(c3, c1, c0); + s0(c0, c1); + } + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-2.in new file mode 100644 index 00000000000..6ad8a4497e4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_ijk-2.in @@ -0,0 +1,3 @@ +[n] -> { s0[k, j] -> [k, j, 1, 0] : k >= 1 and j >= 1 + k and j <= n; s1[k, j, i] -> [i, j, 0, k] : j >= 1 + k and i >= 1 + k and k >= 1 and j <= n and i <= n } +{ : } +[n] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 0; [i0, i1, i2, i3] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-0.c new file mode 100644 index 00000000000..4c8c72ad594 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-0.c @@ -0,0 +1,12 @@ +if (ub >= lb) + for (int c0 = 1; c0 <= ub; c0 += 1) + for (int c1 = c0; c1 <= n; c1 += 1) { + if (c0 >= lb && c1 >= c0 + 1) { + s0(c0, c1); + if (n >= ub + 1) + s2(c0, c1); + } else if (lb >= c0 + 1) + s3(c0, c1, lb, c0, c1); + for (int c3 = max(lb, c0); c3 <= ub; c3 += 1) + s1(c0, c1, c3); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-0.in new file mode 100644 index 00000000000..0dd09538192 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-0.in @@ -0,0 +1,3 @@ +[n, lb, ub] -> { s1[k, i, j] -> [k, i, 1, j, 0, 0, 0, 0] : k >= 1 and j >= k and j <= n and j <= ub and i >= k and i <= n and j >= lb; s3[k, i, lb, k, i] -> [k, i, 1, lb, -1, k, i, 0] : k >= 1 and k <= -1 + lb and lb <= n and ub >= lb and i >= k and i <= n; s0[k, i] -> [k, i, 0, 0, 0, 0, 0, 0] : k >= 1 and k >= lb and i >= 1 + k and i <= n and k <= ub; s2[k, i] -> [k, i, 0, 0, 1, 0, 0, 0] : k >= 1 and k >= lb and k <= ub and ub <= -1 + n and i >= 1 + k and i <= n } +[lb, n, ub] -> { : ub <= n and lb >= 1 } +[n, lb, ub] -> { [i0, i1, i2, i3, i4, i5, i6, i7] -> atomic[o0] : o0 <= 7; [i0, i1, i2, i3, i4, i5, i6, i7] -> separate[o0] : o0 >= 8 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-1.c new file mode 100644 index 00000000000..4c8c72ad594 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-1.c @@ -0,0 +1,12 @@ +if (ub >= lb) + for (int c0 = 1; c0 <= ub; c0 += 1) + for (int c1 = c0; c1 <= n; c1 += 1) { + if (c0 >= lb && c1 >= c0 + 1) { + s0(c0, c1); + if (n >= ub + 1) + s2(c0, c1); + } else if (lb >= c0 + 1) + s3(c0, c1, lb, c0, c1); + for (int c3 = max(lb, c0); c3 <= ub; c3 += 1) + s1(c0, c1, c3); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-1.in new file mode 100644 index 00000000000..5d628befe3e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/lu_spmd-1.in @@ -0,0 +1,3 @@ +[n, lb, ub] -> { s1[k, i, j] -> [k, i, 1, j, 0, 0, 0, 0] : k >= 1 and j >= k and j <= n and j <= ub and i >= k and i <= n and j >= lb; s3[k, i, lb, k, i] -> [k, i, 1, lb, -1, k, i, 0] : k >= 1 and k <= -1 + lb and lb <= n and ub >= lb and i >= k and i <= n; s0[k, i] -> [k, i, 0, 0, 0, 0, 0, 0] : k >= 1 and k >= lb and i >= 1 + k and i <= n and k <= ub; s2[k, i] -> [k, i, 0, 0, 1, 0, 0, 0] : k >= 1 and k >= lb and k <= ub and ub <= -1 + n and i >= 1 + k and i <= n } +[lb, n, ub] -> { : ub <= n and lb >= 1 } +[n, lb, ub] -> { [i0, i1, i2, i3, i4, i5, i6, i7] -> atomic[o0] : o0 <= 6; [i0, i1, i2, i3, i4, i5, i6, i7] -> separate[o0] : o0 >= 7 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m1-0.c new file mode 100644 index 00000000000..bb149359f93 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m1-0.c @@ -0,0 +1,6 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c0, c1); + if (c0 == 5) + s1(5, c1); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m1-0.in new file mode 100644 index 00000000000..ca2b8a9b2c0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m1-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [i, j, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[5, j] -> [5, j, 1] : j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m1-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m1-1.c new file mode 100644 index 00000000000..07b91f794e0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m1-1.c @@ -0,0 +1,13 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) { + if (c0 >= 6) { + for (int c1 = 1; c1 <= 9; c1 += 1) + s0(c0, c1); + } else if (c0 <= 4) { + for (int c1 = 1; c1 <= 9; c1 += 1) + s0(c0, c1); + } else + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(5, c1); + s1(5, c1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m1-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m1-1.in new file mode 100644 index 00000000000..08dbf45ed10 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m1-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [i, j, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[5, j] -> [5, j, 1] : j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m10-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m10-0.c new file mode 100644 index 00000000000..2b51c7b9106 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m10-0.c @@ -0,0 +1,7 @@ +for (int c0 = 1; c0 <= 18; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + if (c0 % 2 == 0) + s0(c1, c0 / 2); + if (c0 <= 9) + s1(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m10-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m10-0.in new file mode 100644 index 00000000000..3046811e743 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m10-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [4j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [2j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m10-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m10-1.c new file mode 100644 index 00000000000..b3f34f6ec93 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m10-1.c @@ -0,0 +1,14 @@ +for (int c0 = 1; c0 <= 18; c0 += 1) { + if (c0 >= 2 && c0 <= 9) { + for (int c1 = 1; c1 <= 9; c1 += 1) { + if (c0 % 2 == 0) + s0(c1, c0 / 2); + s1(c1, c0); + } + } else if (c0 == 1) { + for (int c1 = 1; c1 <= 9; c1 += 1) + s1(c1, 1); + } else if (c0 % 2 == 0) + for (int c1 = 1; c1 <= 9; c1 += 1) + s0(c1, c0 / 2); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m10-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m10-1.in new file mode 100644 index 00000000000..81dfc3bbdea --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m10-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [4j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [2j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m11-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m11-0.c new file mode 100644 index 00000000000..1ecb4a53289 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m11-0.c @@ -0,0 +1,6 @@ +for (int c0 = 1; c0 <= min(4, floord(2 * m - 1, 17) + 1); c0 += 1) + for (int c1 = 1; c1 <= 2; c1 += 1) + for (int c2 = 0; c2 <= min(2, -c0 - c1 + (2 * m + 3 * c0 + 10 * c1 + 6) / 20 + 1); c2 += 1) + for (int c3 = 8 * c0 + (c0 + 1) / 2 - 8; c3 <= min(min(30, m - 5 * c1 - 10 * c2 + 5), 8 * c0 + c0 / 2); c3 += 1) + for (int c4 = 5 * c1 + 10 * c2 - 4; c4 <= min(5 * c1 + 10 * c2, m - c3 + 1); c4 += 1) + s0(c0, c1, c2, c3, c4, -9 * c0 + c3 + c0 / 2 + 9, -5 * c1 - 5 * c2 + c4 + 5); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m11-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m11-0.in new file mode 100644 index 00000000000..d85fcf2734b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m11-0.in @@ -0,0 +1,3 @@ +[m] -> { s0[In_1, In_2, In_3, In_4, In_5, In_6, 5 - 5In_2 - 5In_3 + In_5] -> [In_1, In_2, In_3, In_4, In_5, In_6, 5 - 5In_2 - 5In_3 + In_5] : In_2 >= 1 and 2In_3 >= 1 - In_2 and In_2 <= 2 and 2In_3 <= 6 - In_2 and In_4 <= 30 and In_1 >= 1 and 2In_6 <= 18 - 17In_1 + 2In_4 and 2In_6 >= 17 - 17In_1 + 2In_4 and In_5 <= 5In_2 + 10In_3 and In_5 >= -4 + 5In_2 + 10In_3 and 2In_4 <= 17In_1 and 2In_4 >= -16 + 17In_1 and In_5 <= 1 + m - In_4 } +{ : } +[m] -> { [i0, i1, i2, i3, i4, i5, i6] -> atomic[o0] : o0 <= 5; [i0, i1, i2, i3, i4, i5, i6] -> separate[o0] : o0 >= 6 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m12-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m12-0.c new file mode 100644 index 00000000000..2dc6ab1fea6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m12-0.c @@ -0,0 +1,3 @@ +for (int c1 = 1; c1 <= n; c1 += 1) + for (int c2 = 1; c2 <= m; c2 += 1) + s0(1, c1, c2, 0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m12-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m12-0.in new file mode 100644 index 00000000000..0c988ab110c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m12-0.in @@ -0,0 +1,3 @@ +[m, n] -> { s0[1, In_2, In_3, 0] -> [1, In_2, In_3, 0] : In_3 >= 1 and In_3 <= m and In_2 >= 1 and In_2 <= n } +{ : } +[m, n] -> { [i0, i1, i2, i3] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m12-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m12-1.c new file mode 100644 index 00000000000..eba7c8a6170 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m12-1.c @@ -0,0 +1,25 @@ +{ + for (int c1 = 1; c1 <= n; c1 += 1) + for (int c2 = 1; c2 <= m; c2 += 1) { + s0(1, c1, c2, 0); + s1(1, c1, c2, 0); + } + for (int c1 = 1; c1 <= n; c1 += 1) { + s3(2, c1, 0, 0); + s2(2, c1, 0, 0); + } + for (int c1 = 1; c1 <= m; c1 += 1) { + for (int c3 = 1; c3 <= n; c3 += 1) { + s5(3, c1, 1, c3); + s4(3, c1, 1, c3); + } + for (int c3 = 1; c3 <= n; c3 += 1) { + s7(3, c1, 2, c3); + s6(3, c1, 2, c3); + } + } + for (int c1 = 1; c1 <= m; c1 += 1) { + s8(4, c1, 0, 0); + s9(4, c1, 0, 0); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m12-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m12-1.in new file mode 100644 index 00000000000..355075faf68 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m12-1.in @@ -0,0 +1,3 @@ +[m, n] -> { s1[1, In_2, In_3, 0] -> [1, In_2, In_3, 0] : In_3 >= 1 and In_3 <= m and In_2 >= 1 and In_2 <= n; s2[2, In_2, 0, 0] -> [2, In_2, 0, 0] : In_2 >= 1 and In_2 <= n; s3[2, In_2, 0, 0] -> [2, In_2, 0, 0] : In_2 >= 1 and In_2 <= n; s8[4, In_2, 0, 0] -> [4, In_2, 0, 0] : In_2 >= 1 and In_2 <= m; s0[1, In_2, In_3, 0] -> [1, In_2, In_3, 0] : In_3 >= 1 and In_3 <= m and In_2 >= 1 and In_2 <= n; s7[3, In_2, 2, In_4] -> [3, In_2, 2, In_4] : In_4 >= 1 and In_4 <= n and In_2 >= 1 and In_2 <= m; s4[3, In_2, 1, In_4] -> [3, In_2, 1, In_4] : In_4 >= 1 and In_4 <= n and In_2 >= 1 and In_2 <= m; s6[3, In_2, 2, In_4] -> [3, In_2, 2, In_4] : In_4 >= 1 and In_4 <= n and In_2 >= 1 and In_2 <= m; s9[4, In_2, 0, 0] -> [4, In_2, 0, 0] : In_2 >= 1 and In_2 <= m; s5[3, In_2, 1, In_4] -> [3, In_2, 1, In_4] : In_4 >= 1 and In_4 <= n and In_2 >= 1 and In_2 <= m } +{ : } +[m, n] -> { [i0, i1, i2, i3] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m2-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m2-0.c new file mode 100644 index 00000000000..669f51a7d14 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m2-0.c @@ -0,0 +1,11 @@ +for (int c0 = 2; c0 <= 9; c0 += 1) { + if (c0 >= 5) { + s1(c0, 1); + for (int c1 = 2; c1 <= 9; c1 += 1) { + s1(c0, c1); + s0(c0, c1); + } + } else + for (int c1 = 2; c1 <= 9; c1 += 1) + s0(c0, c1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m2-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m2-0.in new file mode 100644 index 00000000000..ae7780e0403 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m2-0.in @@ -0,0 +1,3 @@ +{ s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 5 and In_1 <= 9 and In_2 >= 1 and In_2 <= 9; s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_1 <= 9 and In_2 >= 2 and In_2 <= 9 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m2-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m2-1.c new file mode 100644 index 00000000000..09255e0c510 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m2-1.c @@ -0,0 +1,12 @@ +{ + for (int c0 = 2; c0 <= 4; c0 += 1) + for (int c1 = 2; c1 <= 9; c1 += 1) + s0(c0, c1); + for (int c0 = 5; c0 <= 9; c0 += 1) { + s1(c0, 1); + for (int c1 = 2; c1 <= 9; c1 += 1) { + s1(c0, c1); + s0(c0, c1); + } + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m2-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m2-1.in new file mode 100644 index 00000000000..32302bb11e6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m2-1.in @@ -0,0 +1,3 @@ +{ s1[In_1, In_2] -> [In_1, In_2] : In_1 >= 5 and In_1 <= 9 and In_2 >= 1 and In_2 <= 9; s0[In_1, In_2] -> [In_1, In_2] : In_1 >= 2 and In_1 <= 9 and In_2 >= 2 and In_2 <= 9 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= -1; [i0, i1] -> separate[o0] : o0 >= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m3-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m3-0.c new file mode 100644 index 00000000000..d3d69704165 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m3-0.c @@ -0,0 +1,3 @@ +for (int c0 = -9; c0 <= 9; c0 += 1) + for (int c1 = max(1, -c0 + 1); c1 <= min(10, -c0 + 10); c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m3-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m3-0.in new file mode 100644 index 00000000000..82e109311bc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m3-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_2 >= 1 - In_1 and In_2 >= 1 and In_2 <= 10 - In_1 and In_2 <= 10 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m4-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m4-0.c new file mode 100644 index 00000000000..a5280732a46 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m4-0.c @@ -0,0 +1,5 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c1, c0); + s1(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m4-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m4-0.in new file mode 100644 index 00000000000..b7912a306b6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m4-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m4-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m4-1.c new file mode 100644 index 00000000000..a5280732a46 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m4-1.c @@ -0,0 +1,5 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c1, c0); + s1(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m4-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m4-1.in new file mode 100644 index 00000000000..c9e17d93466 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m4-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m7-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m7-0.c new file mode 100644 index 00000000000..d9f93d96fcd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m7-0.c @@ -0,0 +1,6 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c1, c0); + if (c0 % 2 == 0) + s1(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m7-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m7-0.in new file mode 100644 index 00000000000..45a185043bc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m7-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [j, i, 1] : exists (e0 = [(j)/2]: 2e0 = j and i >= 1 and i <= 9 and j >= 2 and j <= 8) } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m7-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m7-1.c new file mode 100644 index 00000000000..a01856e4b4d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m7-1.c @@ -0,0 +1,10 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) { + if (c0 % 2 == 0) { + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c1, c0); + s1(c1, c0); + } + } else + for (int c1 = 1; c1 <= 9; c1 += 1) + s0(c1, c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m7-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m7-1.in new file mode 100644 index 00000000000..f4b6f6ffce8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m7-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [j, i, 1] : exists (e0 = [(j)/2]: 2e0 = j and i >= 1 and i <= 9 and j >= 2 and j <= 8) } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m8-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m8-0.c new file mode 100644 index 00000000000..9aaed9e9636 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m8-0.c @@ -0,0 +1,6 @@ +for (int c0 = 2; c0 <= 8; c0 += 2) + for (int c1 = 1; c1 <= 9; c1 += 1) { + if (c0 % 4 == 0) + s0(c1, c0); + s1(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m8-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m8-0.in new file mode 100644 index 00000000000..e9a0e39646b --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m8-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [j, i, 0] : exists (e0 = [(j)/4]: 4e0 = j and i >= 1 and i <= 9 and j >= 4 and j <= 8); s1[i, j] -> [j, i, 1] : exists (e0 = [(j)/2]: 2e0 = j and i >= 1 and i <= 9 and j >= 2 and j <= 8) } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m8-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m8-1.c new file mode 100644 index 00000000000..51c77daeca4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m8-1.c @@ -0,0 +1,10 @@ +for (int c0 = 2; c0 <= 8; c0 += 2) { + if (c0 % 4 == 0) { + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c1, c0); + s1(c1, c0); + } + } else + for (int c1 = 1; c1 <= 9; c1 += 1) + s1(c1, c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m8-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m8-1.in new file mode 100644 index 00000000000..80e57e499db --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m8-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [j, i, 0] : exists (e0 = [(j)/4]: 4e0 = j and i >= 1 and i <= 9 and j >= 4 and j <= 8); s1[i, j] -> [j, i, 1] : exists (e0 = [(j)/2]: 2e0 = j and i >= 1 and i <= 9 and j >= 2 and j <= 8) } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m9-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/m9-0.c new file mode 100644 index 00000000000..a5280732a46 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m9-0.c @@ -0,0 +1,5 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c1, c0); + s1(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m9-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/m9-0.in new file mode 100644 index 00000000000..fc38bf2e486 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m9-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [2j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [2j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m9-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/m9-1.c new file mode 100644 index 00000000000..a5280732a46 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m9-1.c @@ -0,0 +1,5 @@ +for (int c0 = 1; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + s0(c1, c0); + s1(c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/m9-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/m9-1.in new file mode 100644 index 00000000000..398e3260abf --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/m9-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [2j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [2j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/olda-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/olda-0.c new file mode 100644 index 00000000000..b05f991ad1f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/olda-0.c @@ -0,0 +1,8 @@ +for (int c0 = 1; c0 <= morb; c0 += 1) + for (int c1 = 1; c1 <= np; c1 += 1) + for (int c2 = 1; c2 <= np; c2 += 1) { + if (c2 >= c1) + s0(c2, c1, c0); + if (c1 >= c2) + s1(c1, c2, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/olda-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/olda-0.in new file mode 100644 index 00000000000..88f86f558c5 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/olda-0.in @@ -0,0 +1,3 @@ +[np, morb] -> { s0[mp, mq, mi] -> [mi, mq, mp, 0] : mq >= 1 and mq <= mp and mp <= np and mi >= 1 and mi <= morb; s1[mp, mq, mi] -> [mi, mp, mq, 1] : mq >= 1 and mq <= mp and mp <= np and mi >= 1 and mi <= morb } +{ : } +[np, morb] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2; [i0, i1, i2, i3] -> separate[o0] : o0 >= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/olda-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/olda-1.c new file mode 100644 index 00000000000..4b3098068e4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/olda-1.c @@ -0,0 +1,9 @@ +for (int c0 = 1; c0 <= morb; c0 += 1) + for (int c1 = 1; c1 <= np; c1 += 1) { + for (int c2 = 1; c2 < c1; c2 += 1) + s1(c1, c2, c0); + s0(c1, c1, c0); + s1(c1, c1, c0); + for (int c2 = c1 + 1; c2 <= np; c2 += 1) + s0(c2, c1, c0); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/olda-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/olda-1.in new file mode 100644 index 00000000000..a3a387fbac4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/olda-1.in @@ -0,0 +1,3 @@ +[np, morb] -> { s0[mp, mq, mi] -> [mi, mq, mp, 0] : mq >= 1 and mq <= mp and mp <= np and mi >= 1 and mi <= morb; s1[mp, mq, mi] -> [mi, mp, mq, 1] : mq >= 1 and mq <= mp and mp <= np and mi >= 1 and mi <= morb } +{ : } +[np, morb] -> { [i0, i1, i2, i3] -> atomic[o0] : o0 <= 1; [i0, i1, i2, i3] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p.delft-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft-0.c new file mode 100644 index 00000000000..c676558941f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft-0.c @@ -0,0 +1,4 @@ +if (P2 >= 0 && P2 <= 3 && P1 == P2) + for (int c0 = 0; c0 <= min(2, -P2 + 4); c0 += 1) + for (int c2 = (-P2 - c0 + 6) % 3; c2 <= 3; c2 += 3) + s0(c0, c0, c2, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p.delft-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft-0.in new file mode 100644 index 00000000000..5b277a12d78 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft-0.in @@ -0,0 +1,3 @@ +[P2, P1] -> { s0[In_1, In_1, In_3, In_3] -> [In_1, In_1, In_3, In_3] : exists (e0 = [(-2P2 - 2In_1 + In_3)/3]: P1 = P2 and 3e0 = -2P2 - 2In_1 + In_3 and P2 >= 0 and P2 <= 3 and In_1 <= 4 - P2 and In_1 >= 0 and In_1 <= 2 and In_3 >= 0 and In_3 <= 3) } +{ : } +[P2, P1] -> { [i0, i1, i2, i3] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p.delft2-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft2-0.c new file mode 100644 index 00000000000..ad5a4cab0d6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft2-0.c @@ -0,0 +1,10 @@ +if (P1 >= 0 && P1 <= 3 && P2 >= 0 && P2 <= 3) + for (int c0 = P1 - 1; c0 <= 3; c0 += 1) + for (int c2 = 0; c2 <= 7; c2 += 1) + for (int c3 = 0; c3 <= 7; c3 += 1) + if ((5 * P2 + 2 * c3) % 9 <= 3) { + if (P1 >= 1 && c0 + 1 == P1 && (5 * P1 + 2 * c2) % 9 <= 2) { + s0(P1 - 1, P2, c2, c3, ((5 * P1 + 2 * c2) % 9) + 1, (-4 * P2 + 2 * c3 + 9) % 9); + } else if (P1 == 0 && c0 == 3 && c2 % 4 == 0) + s0(3, P2, c2, c3, (-c2 / 4) + 3, (-4 * P2 + 2 * c3 + 9) % 9); + } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p.delft2-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft2-0.in new file mode 100644 index 00000000000..f44b9bfdaa9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p.delft2-0.in @@ -0,0 +1,3 @@ +[P1, P2] -> { s0[In_1, P2, In_3, In_4, In_5, In_6] -> [In_1, P2, In_3, In_4, In_5, In_6] : (exists (e0 = [(8 + 4In_1 + 16In_3 + In_5)/9], e1 = [(12 - 4P1 + 9e0)/16], e2 = [(-2In_1 - 2In_3 + In_5)/3], e3 = [(-5P2 - 2In_4 + In_6)/9]: 3e2 = -2In_1 - 2In_3 + In_5 and 9e3 = -5P2 - 2In_4 + In_6 and P1 >= 0 and In_1 >= 1 + P1 and In_1 <= 3 and P2 >= 0 and P2 <= 3 and In_6 >= 0 and In_6 <= 3 and In_5 >= 0 and In_5 <= 3 and In_5 >= 1 - 4In_1 - 16In_3 and In_5 <= 126 - 4In_1 - 16In_3 and In_6 <= 126 - 4P2 - 16In_4 and 16e1 <= -4P1 + 9e0 and 2In_6 <= P2 + 4In_4 and 9e0 <= 3 + 4In_1 + 16In_3 + In_5 and 9e0 >= 4In_1 + 16In_3 + In_5 and 16e1 >= -3 - 4P1 + 9e0)) or (exists (e0 = [(8 + 4In_1 + 16In_3 + In_5)/9], e1 = [(12 - 4P1 + 9e0)/16], e2 = [(-2In_1 - 2In_3 + In_5)/3], e3 = [(-5P2 - 2In_4 + In_6)/9]: 3e2 = -2In_1 - 2In_3 + In_5 and 9e3 = -5P2 - 2In_4 + In_6 and In_1 >= 0 and In_1 <= -1 + P1 and P1 <= 3 and In_6 >= 0 and In_6 <= 3 and In_6 <= 1 + 2In_4 and P2 >= 0 and P2 <= 3 and In_5 >= 0 and In_5 <= 3 and In_5 >= 1 - 4In_1 - 16In_3 and In_5 <= 126 - 4In_1 - 16In_3 and In_6 <= 126 - 4P2 - 16In_4 and 16e1 <= -4P1 + 9e0 and 9e0 <= 3 + 4In_1 + 16In_3 + In_5 and 9e0 >= 4In_1 + 16In_3 + In_5 and 16e1 >= -3 - 4P1 + 9e0)) } +{ : } +[P1, P2] -> { [i0, i1, i2, i3, i4, i5] -> atomic[o0] : o0 <= 4; [i0, i1, i2, i3, i4, i5] -> separate[o0] : o0 >= 5 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p6-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/p6-0.c new file mode 100644 index 00000000000..53995e9e89e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p6-0.c @@ -0,0 +1,8 @@ +{ + for (int c0 = 5; c0 <= 8; c0 += 1) + s0(c0); + for (int c0 = 10; c0 <= 16; c0 += 2) + s0(c0); + for (int c0 = 20; c0 <= 25; c0 += 1) + s0(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p6-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/p6-0.in new file mode 100644 index 00000000000..025da3d30d6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p6-0.in @@ -0,0 +1,3 @@ +{ s0[In_1] -> [In_1] : (In_1 >= 5 and In_1 <= 8) or (exists (e0 = [(In_1)/2]: 2e0 = In_1 and In_1 >= 10 and In_1 <= 16)) or (In_1 >= 20 and In_1 <= 25) } +{ : } +{ [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p6-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/p6-1.c new file mode 100644 index 00000000000..d3d69704165 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p6-1.c @@ -0,0 +1,3 @@ +for (int c0 = -9; c0 <= 9; c0 += 1) + for (int c1 = max(1, -c0 + 1); c1 <= min(10, -c0 + 10); c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/p6-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/p6-1.in new file mode 100644 index 00000000000..82e109311bc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/p6-1.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : In_2 >= 1 - In_1 and In_2 >= 1 and In_2 <= 10 - In_1 and In_2 <= 10 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride1-0.c new file mode 100644 index 00000000000..c65c2e39fbc --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride1-0.c @@ -0,0 +1,2 @@ +for (int c0 = 3; c0 <= 9; c0 += 3) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride1-0.in new file mode 100644 index 00000000000..e09908713f1 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride1-0.in @@ -0,0 +1,3 @@ +{ s0[In_1] -> [In_1] : exists (e0 = [(In_1)/3]: 3e0 = In_1 and In_1 >= 3 and In_1 <= 9) } +{ : } +{ [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride2-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride2-0.c new file mode 100644 index 00000000000..0a7e8e7464d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride2-0.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= n; c0 += 32) + for (int c1 = c0; c1 <= min(n, c0 + 31); c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride2-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride2-0.in new file mode 100644 index 00000000000..73dc13d60e4 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride2-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(In_1)/32]: 32e0 = In_1 and In_2 <= 31 + In_1 and In_1 >= 0 and In_2 >= In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride3-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride3-0.c new file mode 100644 index 00000000000..8913c802cc0 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride3-0.c @@ -0,0 +1,3 @@ +for (int c0 = 3; c0 <= n; c0 += 32) + for (int c1 = c0; c1 <= min(n, c0 + 31); c1 += 1) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride3-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride3-0.in new file mode 100644 index 00000000000..360d7d01de1 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride3-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(-3 + In_1)/32]: 32e0 = -3 + In_1 and In_2 <= 31 + In_1 and In_1 >= 3 and In_2 >= In_1 and In_2 <= n) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride4-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride4-0.c new file mode 100644 index 00000000000..ed62b592ee2 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride4-0.c @@ -0,0 +1,2 @@ +for (int c0 = 18; c0 <= 98; c0 += 5) + s0(c0); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride4-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride4-0.in new file mode 100644 index 00000000000..8779c3ceffa --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride4-0.in @@ -0,0 +1,3 @@ +{ s0[In_1] -> [In_1] : exists (e0 = [(-3 + In_1)/5]: 5e0 = -3 + In_1 and In_1 >= 18 and In_1 <= 98) } +{ : } +{ [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride5-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride5-0.c new file mode 100644 index 00000000000..2eeeb5a7b54 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride5-0.c @@ -0,0 +1,3 @@ +for (int c0 = 2; c0 <= min(100, -2 * n + 400); c0 += 2) + for (int c1 = 2 * n + c0; c1 <= 400; c1 += 2) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride5-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride5-0.in new file mode 100644 index 00000000000..c26c5476b3c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride5-0.in @@ -0,0 +1,3 @@ +[n] -> { s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(In_1)/2], e1 = [(In_2)/2]: 2e0 = In_1 and 2e1 = In_2 and In_1 >= 2 and In_1 <= 100 and In_2 <= 400 and In_2 >= 2n + In_1) } +{ : } +[n] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride6-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-0.c new file mode 100644 index 00000000000..f4df469cf62 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-0.c @@ -0,0 +1,3 @@ +for (int c0 = 1; c0 <= 101; c0 += 1) + for (int c1 = -((c0 - 1) % 2) + c0 + 1; c1 <= 400; c1 += 2) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride6-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-0.in new file mode 100644 index 00000000000..16fda744249 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-0.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(In_2)/2]: 2e0 = In_2 and In_1 >= 1 and In_2 >= In_1 and In_2 <= 400 and In_1 <= 101) } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride6-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-1.c new file mode 100644 index 00000000000..070028f0504 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-1.c @@ -0,0 +1,3 @@ +for (int c0 = 2; c0 <= 100; c0 += 2) + for (int c1 = c0; c1 <= 400; c1 += 2) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride6-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-1.in new file mode 100644 index 00000000000..91eaab26a32 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-1.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(In_1)/2], e1 = [(In_2)/2]: 2e0 = In_1 and 2e1 = In_2 and In_1 >= 2 and In_2 >= In_1 and In_2 <= 400 and In_1 <= 100) } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride6-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-2.c new file mode 100644 index 00000000000..070028f0504 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-2.c @@ -0,0 +1,3 @@ +for (int c0 = 2; c0 <= 100; c0 += 2) + for (int c1 = c0; c1 <= 400; c1 += 2) + s0(c0, c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride6-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-2.in new file mode 100644 index 00000000000..91eaab26a32 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride6-2.in @@ -0,0 +1,3 @@ +{ s0[In_1, In_2] -> [In_1, In_2] : exists (e0 = [(In_1)/2], e1 = [(In_2)/2]: 2e0 = In_1 and 2e1 = In_2 and In_1 >= 2 and In_2 >= In_1 and In_2 <= 400 and In_1 <= 100) } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride7-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-0.c new file mode 100644 index 00000000000..7fe17588f3d --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-0.c @@ -0,0 +1,14 @@ +for (int c0 = 1; c0 <= 36; c0 += 1) { + if (c0 <= 3) { + for (int c1 = 1; c1 <= 9; c1 += 1) + s1(c1, c0); + } else if (c0 <= 9) { + for (int c1 = 1; c1 <= 9; c1 += 1) { + if (c0 % 4 == 0) + s0(c1, c0 / 4); + s1(c1, c0); + } + } else if (c0 % 4 == 0) + for (int c1 = 1; c1 <= 9; c1 += 1) + s0(c1, c0 / 4); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride7-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-0.in new file mode 100644 index 00000000000..b84f2045fde --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [4j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride7-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-1.c new file mode 100644 index 00000000000..e79d58deb10 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-1.c @@ -0,0 +1,14 @@ +{ + for (int c0 = 1; c0 <= 3; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) + s1(c1, c0); + for (int c0 = 4; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) { + if (c0 % 4 == 0) + s0(c1, c0 / 4); + s1(c1, c0); + } + for (int c0 = 3; c0 <= 9; c0 += 1) + for (int c1 = 1; c1 <= 9; c1 += 1) + s0(c1, c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/stride7-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-1.in new file mode 100644 index 00000000000..3ec82b9c39a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/stride7-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [4j, i, 0] : i >= 1 and i <= 9 and j >= 1 and j <= 9; s1[i, j] -> [j, i, 1] : i >= 1 and i <= 9 and j >= 1 and j <= 9 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 0; [i0, i1, i2] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-0.c new file mode 100644 index 00000000000..b12c07d3751 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-0.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= 10; c0 += 1) + for (int c1 = max(2 * c0 - 4, c0); c1 <= min(2 * c0, c0 + 6); c1 += 1) + s0(2 * c0 - c1, -c0 + c1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-0.in new file mode 100644 index 00000000000..f4af71649b6 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [i + j, i + 2j] : i >= 0 and i <= 4 and j >= 0 and j <= 6 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-1.c new file mode 100644 index 00000000000..486514c0433 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-1.c @@ -0,0 +1,3 @@ +for (int c0 = 0; c0 <= 14; c0 += 1) + for (int c1 = max(2 * c0 - 12, -c0 + 3 * floord(c0 - 1, 2) + 3); c1 <= min(2 * c0, c0 / 2 + 9); c1 += 3) + s0((2 * c0 - c1) / 3, (-c0 + 2 * c1) / 3); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-1.in new file mode 100644 index 00000000000..504b220fbef --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [2i + j, i + 2j] : i >= 0 and i <= 4 and j >= 0 and j <= 6 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-2.c new file mode 100644 index 00000000000..9748950ae52 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-2.c @@ -0,0 +1,2 @@ +for (int c0 = -3; c0 <= 96; c0 += 1) + s0(c0, c0 + 4); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-2.in new file mode 100644 index 00000000000..bc9af0c0063 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-2.in @@ -0,0 +1,3 @@ +{ s0[i, 4 + i] -> [i, 4 + i] : i >= -3 and i <= 96 } +{ : } +{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-3.c new file mode 100644 index 00000000000..86c197f7a95 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-3.c @@ -0,0 +1 @@ +s0(n + 19); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-3.in new file mode 100644 index 00000000000..ea1ac1ab914 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-3.in @@ -0,0 +1,3 @@ +[n] -> { s0[19 + n] -> [19 + n] } +{ : } +[n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-4.c b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-4.c new file mode 100644 index 00000000000..27b3199c0c3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-4.c @@ -0,0 +1 @@ +s0(n + 1); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/substitution-4.in b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-4.in new file mode 100644 index 00000000000..ecb07cd85bd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/substitution-4.in @@ -0,0 +1,3 @@ +[n] -> { s0[i] -> [i] : exists (e0 = [(-1 - n + i)/18]: 18e0 = -1 - n + i and i <= 16 + n and i >= 1 + n) } +{ : } +[n] -> { [i0] -> separate[o0] : o0 >= 0; [i0] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-0.c new file mode 100644 index 00000000000..bb3ef7fa252 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-0.c @@ -0,0 +1,4 @@ +for (int c0 = 1; c0 <= min(n, 2 * b - 1); c0 += 1) + for (int c1 = max(-n + 1, -b + 1); c1 <= min(b - c0, n - c0); c1 += 1) + for (int c2 = max(1, c0 + c1); c2 <= min(n, n + c1); c2 += 1) + s0(-c0 - c1 + c2 + 1, -c1 + c2, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-0.in new file mode 100644 index 00000000000..28a7deb1f05 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-0.in @@ -0,0 +1,3 @@ +[n, b] -> { s0[i, j, k] -> [1 - i + j, -j + k, k] : i >= 1 and j >= i and j <= n and k >= 1 and k <= n and k <= -1 + b + i and k >= 1 - b + j } +{ : } +[n, b] -> { [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-1.c new file mode 100644 index 00000000000..22ec83ec7ee --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-1.c @@ -0,0 +1,4 @@ +for (int c0 = 1; c0 <= min(n, 2 * b - 1); c0 += 1) + for (int c1 = -b + 1; c1 <= b - c0; c1 += 1) + for (int c2 = max(1, c0 + c1); c2 <= min(n, n + c1); c2 += 1) + s0(-c0 - c1 + c2 + 1, -c1 + c2, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-1.in new file mode 100644 index 00000000000..496aebe2e8f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-1.in @@ -0,0 +1,3 @@ +[n, b] -> { s0[i, j, k] -> [1 - i + j, -j + k, k] : i >= 1 and j >= i and j <= n and k >= 1 and k <= n and k <= -1 + b + i and k >= 1 - b + j } +[b, n] -> { : b >= 1 and n >= b } +[n, b] -> { [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-2.c b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-2.c new file mode 100644 index 00000000000..bb3ef7fa252 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-2.c @@ -0,0 +1,4 @@ +for (int c0 = 1; c0 <= min(n, 2 * b - 1); c0 += 1) + for (int c1 = max(-n + 1, -b + 1); c1 <= min(b - c0, n - c0); c1 += 1) + for (int c2 = max(1, c0 + c1); c2 <= min(n, n + c1); c2 += 1) + s0(-c0 - c1 + c2 + 1, -c1 + c2, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-2.in b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-2.in new file mode 100644 index 00000000000..28a7deb1f05 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-2.in @@ -0,0 +1,3 @@ +[n, b] -> { s0[i, j, k] -> [1 - i + j, -j + k, k] : i >= 1 and j >= i and j <= n and k >= 1 and k <= n and k <= -1 + b + i and k >= 1 - b + j } +{ : } +[n, b] -> { [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-3.c b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-3.c new file mode 100644 index 00000000000..22ec83ec7ee --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-3.c @@ -0,0 +1,4 @@ +for (int c0 = 1; c0 <= min(n, 2 * b - 1); c0 += 1) + for (int c1 = -b + 1; c1 <= b - c0; c1 += 1) + for (int c2 = max(1, c0 + c1); c2 <= min(n, n + c1); c2 += 1) + s0(-c0 - c1 + c2 + 1, -c1 + c2, c2); diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-3.in b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-3.in new file mode 100644 index 00000000000..496aebe2e8f --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/syr2k-3.in @@ -0,0 +1,3 @@ +[n, b] -> { s0[i, j, k] -> [1 - i + j, -j + k, k] : i >= 1 and j >= i and j <= n and k >= 1 and k <= n and k <= -1 + b + i and k >= 1 - b + j } +[b, n] -> { : b >= 1 and n >= b } +[n, b] -> { [i0, i1, i2] -> separate[o0] : o0 >= 2; [i0, i1, i2] -> atomic[o0] : o0 <= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check-sblock-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check-sblock-0.c new file mode 100644 index 00000000000..c70e95bcb41 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check-sblock-0.c @@ -0,0 +1,14 @@ +{ + for (int c1 = 0; c1 <= 1; c1 += 1) { + if (c1 == 1) { + s0(1, 1, 1, 0, 0); + s0(1, 1, 1, N - 1, 0); + } else + for (int c3 = 0; c3 < N; c3 += 1) + s0(1, 0, 1, c3, 0); + } + for (int c1 = 0; c1 <= floord(T - 1, 1000); c1 += 1) + for (int c2 = 1000 * c1 + 1; c2 <= min(N + T - 3, N + 1000 * c1 + 997); c2 += 1) + for (int c3 = max(0, -N - 1000 * c1 + c2 + 2); c3 <= min(min(999, T - 1000 * c1 - 1), -1000 * c1 + c2 - 1); c3 += 1) + s1(2, 1000 * c1 + c3, 1, -1000 * c1 + c2 - c3, 1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check-sblock-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check-sblock-0.in new file mode 100644 index 00000000000..b1f92ea71a7 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check-sblock-0.in @@ -0,0 +1,3 @@ +[T, N] -> { s1[2, t, 1, i, 1] -> [2, tb, t + i, t - 1000tb, 0] : 1000tb <= t and 1000tb >= -999 + t and i >= 1 and i <= -2 + N and t >= 0 and t <= -1 + T; s0[1, 0, 1, In_4, 0] -> [1, 0, 1, In_4, 0] : In_4 >= 0 and In_4 <= -1 + N; s0[1, 1, 1, 0, 0] -> [1, 1, 1, 0, 0]; s0[1, 1, 1, -1 + N, 0] -> [1, 1, 1, -1 + N, 0] } +[T, N] -> { : T >= 0 and N >= 4 } +[N] -> { [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check0-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check0-0.c new file mode 100644 index 00000000000..5cf4bc9f5c8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check0-0.c @@ -0,0 +1,13 @@ +{ + for (int c1 = 0; c1 < N; c1 += 1) + s0(1, c1, 1, 0, 0); + for (int c1 = 0; c1 <= floord(T - 1, 500); c1 += 1) + for (int c2 = 1000 * c1; c2 <= min(N + 2 * T - 3, N + 1000 * c1 + 997); c2 += 1) { + for (int c3 = max(0, -((N + c2) % 2) - N - 1000 * c1 + c2 + 2); c3 <= min(min(998, 2 * T - 1000 * c1 - 2), -1000 * c1 + c2 - 2); c3 += 2) { + s1(2, 1000 * c1 + c3, 0, -1000 * c1 + c2 - c3, 1); + s2(2, 1000 * c1 + c3 + 1, 0, -1000 * c1 + c2 - c3 - 1, 1); + } + if (2 * T >= c2 + 1 && 1000 * c1 + 999 >= c2) + s1(2, -(c2 % 2) + c2, 0, c2 % 2, 1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check0-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check0-0.in new file mode 100644 index 00000000000..ce585b0836c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-check0-0.in @@ -0,0 +1,3 @@ +[T, N] -> { s1[2, t, 0, i, 1] -> [2, tb, t + i, t - 1000tb, 1] : exists (e0 = [(t - 1000tb)/2]: 2e0 = t - 1000tb and 1000tb <= t and 1000tb >= -999 + t and i >= 0 and i <= -1 + N and t >= 0 and t <= -2 + 2T); s0[1, In_2, 1, 0, 0] -> [1, In_2, 1, 0, 0] : In_2 >= 0 and In_2 <= -1 + N; s2[2, t, 0, i, 1] -> [2, tb, t + i, t - 1000tb, 1] : exists (e0 = [(-1 + t - 1000tb)/2]: 2e0 = -1 + t - 1000tb and 1000tb <= t and 1000tb >= -999 + t and i >= 1 and i <= -2 + N and t >= 1 and t <= -1 + 2T) } +[T, N] -> { : T >= 0 and N >= 4 } +[N] -> { [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 3; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-mp-i_ts-m_b-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-mp-i_ts-m_b-0.c new file mode 100644 index 00000000000..41e3ae6094e --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-mp-i_ts-m_b-0.c @@ -0,0 +1,35 @@ +{ + for (int c1 = -1; c1 < T; c1 += 1) + for (int c2 = 0; c2 < N; c2 += 1) { + if (c1 == -1) { + s0(1, -1, c2, 0, 0); + } else if (c2 == 0) { + s0(1, c1, 0, 0, 0); + } else if (c2 + 1 == N) + s0(1, c1, N - 1, 0, 0); + } + for (int c1 = 0; c1 <= floord(T - 1, 500); c1 += 1) { + for (int c3 = -((c1 + 9) / 8) + 2; c3 <= floord(N - 500 * c1 - 3, 4000) + 1; c3 += 1) + for (int c4 = max(500 * c1 + 1, 1000 * c1 + 4000 * c3 - 3999); c4 <= min(min(N + T - 3, 1000 * c1 + 4000 * c3 - 3000), 2 * N - 4000 * c3 + 3995); c4 += 1) + for (int c5 = max(0, -N - 500 * c1 + c4 + 2); c5 <= min(min(T - 500 * c1 - 1, -500 * c1 + c4 - 1), -500 * c1 - 2000 * c3 + (c4 + 1) / 2 + 1999); c5 += 1) + s1(2, 500 * c1 + c5, 1, -500 * c1 + c4 - c5, 1); + for (int c3 = max(-((T + 4000) / 4000) + 2, -((c1 + 9) / 8) + 2); c3 <= floord(N - 500 * c1 - 3, 4000) + 1; c3 += 1) + for (int c4 = max(1000 * c1 + 4000 * c3 - 3999, -4000 * c3 + 4000); c4 <= min(min(2 * T + 4000 * c3 - 4000, 1000 * c1 + 4000 * c3 - 3000), 2 * N - 4000 * c3 + 3995); c4 += 1) + s2(2, -2000 * c3 + (c4 + 1) / 2 + 1999, 1, 2000 * c3 + c4 - (c4 + 1) / 2 - 1999, 1); + for (int c3 = -((c1 + 7) / 8) + 1; c3 <= min(floord(N + T - 1000 * c1 - 1004, 4000) + 1, floord(N - 500 * c1 - 504, 4000) + 1); c3 += 1) + for (int c4 = max(500 * c1 + 1, 1000 * c1 + 4000 * c3 - 2999); c4 <= min(min(N + T - 3, N + 500 * c1 + 497), 1000 * c1 + 4000 * c3); c4 += 1) + for (int c5 = max(0, -N - 500 * c1 + c4 + 2); c5 <= min(min(499, T - 500 * c1 - 1), -500 * c1 + c4 - 1); c5 += 1) + s3(2, 500 * c1 + c5, 1, -500 * c1 + c4 - c5, 1); + for (int c3 = max(-((T + 4000) / 4000) + 1, -((c1 + 9) / 8) + 1); c3 <= floord(N - 500 * c1 - 3, 4000); c3 += 1) + for (int c4 = max(-4000 * c3, 1000 * c1 + 4000 * c3 + 1); c4 <= min(min(2 * N - 4000 * c3 - 5, 2 * T + 4000 * c3), 1000 * c1 + 4000 * c3 + 1000); c4 += 1) + s4(2, -2000 * c3 + (c4 + 1) / 2 - 1, 1, 2000 * c3 + c4 - (c4 + 1) / 2 + 1, 1); + for (int c3 = -((c1 + 8) / 8) + 1; c3 <= min(floord(N + T - 1000 * c1 - 4, 4000), floord(N - 500 * c1 + 496, 4000)); c3 += 1) + for (int c4 = max(1000 * c1 + 4000 * c3 + 1, -4000 * c3 + 2); c4 <= min(min(min(N + T - 3, N + 500 * c1 + 497), 2 * T + 4000 * c3 - 2), 1000 * c1 + 4000 * c3 + 998); c4 += 1) + for (int c5 = max(-N - 500 * c1 + c4 + 2, -500 * c1 - 2000 * c3 + (c4 + 1) / 2); c5 <= min(min(499, T - 500 * c1 - 1), -500 * c1 + c4 - 1); c5 += 1) + s5(2, 500 * c1 + c5, 1, -500 * c1 + c4 - c5, 1); + } + if (T >= 1) + for (int c3 = -((T + 3998) / 4000) + 1; c3 <= floord(N - T - 2, 4000) + 1; c3 += 1) + for (int c4 = max(T, 2 * T + 4000 * c3 - 4001); c4 < min(N + T - 2, 2 * T + 4000 * c3 - 1); c4 += 1) + s6(2, T - 1, 1, -T + c4 + 1, 1); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-mp-i_ts-m_b-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-mp-i_ts-m_b-0.in new file mode 100644 index 00000000000..0f86a1c38b9 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-mp-i_ts-m_b-0.in @@ -0,0 +1,3 @@ +[T, N] -> { s1[2, t, 1, i, 1] -> [2, tb, 1, proc, t + i, t - 500tb, 0] : 4000proc >= 3000 + t + i - 1000tb and 500tb <= t and 4000proc <= 3999 - t + i and i >= 1 and i <= -2 + N and t >= 0 and t <= -1 + T; s0[1, -1, c, 0, 0] -> [1, -1, c, 0, 0, 0, 0] : c >= 0 and c <= -1 + N; s0[1, b, 0, 0, 0] -> [1, b, 0, 0, 0, 0, 0] : b >= 0 and b <= -1 + T; s0[1, b, -1 + N, 0, 0] -> [1, b, -1 + N, 0, 0, 0, 0] : b >= 0 and b <= -1 + T; s6[2, -1 + T, 1, i, 1] -> [3, tb, 7, proc, -1 + T + i, -1 + T - 500tb, 0] : 500tb <= -1 + T and 500tb >= -500 + T and 4000proc >= 1 - T + i and 4000proc <= 4000 - T + i and i >= 1 and i <= -2 + N and T >= 1; s3[2, t, 1, i, 1] -> [2, tb, 3, proc, t + i, t - 500tb, 0] : 500tb <= t and 500tb >= -499 + t and 4000proc <= 2999 + t + i - 1000tb and 4000proc >= t + i - 1000tb and i >= 1 and i <= -2 + N and t >= 0 and t <= -1 + T; s2[2, t, 1, i, 1] -> [2, tb, 2, proc, t + i, t - 500tb, 0] : 500tb <= t and 500tb >= -499 + t and 4000proc <= 3999 - t + i and 4000proc >= 3998 - t + i and i >= 1 and i <= -2 + N and t >= 0 and t <= -1 + T; s4[2, t, 1, i, 1] -> [2, tb, 4, Out_4, t + i, t - 500tb, 0] : 500tb <= t and 500tb >= -499 + t and 4000Out_4 <= -1 - t + i and 4000Out_4 >= -2 - t + i and i >= 1 and i <= -2 + N and t >= 0 and t <= -1 + T; s5[2, t, 1, i, 1] -> [2, tb, 5, proc, t + i, t - 500tb, 0] : 500tb >= -499 + t and 4000proc <= -1 + t + i - 1000tb and 4000proc >= -t + i and i >= 1 and i <= -2 + N and t >= 0 and t <= -1 + T } +[T, N] -> { : T >= 0 and N >= 4 } +[N, T] -> { [i0, i1, i2, i3, i4, i5, i6] -> atomic[o0] : o0 <= 5; [i0, i1, i2, i3, i4, i5, i6] -> separate[o0] : o0 >= 6 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-orig0-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-orig0-0.c new file mode 100644 index 00000000000..9eff756c5bd --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-orig0-0.c @@ -0,0 +1,10 @@ +{ + for (int c1 = 0; c1 < N; c1 += 1) + s0(1, c1, 1, 0, 0); + for (int c1 = 0; c1 < T; c1 += 1) { + for (int c3 = 0; c3 < N; c3 += 1) + s1(2, c1, 0, c3, 1); + for (int c3 = 1; c3 < N - 1; c3 += 1) + s2(2, c1, 1, c3, 1); + } +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-orig0-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-orig0-0.in new file mode 100644 index 00000000000..153ba7e9bfe --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/ts1d-orig0-0.in @@ -0,0 +1,3 @@ +[T, N] -> { s1[2, In_2, 0, In_4, 1] -> [2, In_2, 0, In_4, 1] : In_4 >= 0 and In_4 <= -1 + N and In_2 >= 0 and In_2 <= -1 + T; s0[1, In_2, 1, 0, 0] -> [1, In_2, 1, 0, 0] : In_2 >= 0 and In_2 <= -1 + N; s2[2, In_2, 1, In_4, 1] -> [2, In_2, 1, In_4, 1] : In_4 >= 1 and In_4 <= -2 + N and In_2 >= 0 and In_2 <= -1 + T } +[T, N] -> { : T >= 0 and N >= 4 } +[N] -> { [i0, i1, i2, i3, i4] -> separate[o0] : o0 >= 4; [i0, i1, i2, i3, i4] -> atomic[o0] : o0 <= 3 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak1-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-0.c new file mode 100644 index 00000000000..2c310e8d2ee --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-0.c @@ -0,0 +1,27 @@ +{ + for (int c0 = a2; c0 <= min(min(a1 - 1, a3 - 1), b2); c0 += 1) + s1(c0); + for (int c0 = a1; c0 <= min(b1, a3 - 1); c0 += 1) { + s0(c0); + if (c0 >= a2 && b2 >= c0) + s1(c0); + } + for (int c0 = max(max(a1, b1 + 1), a2); c0 <= min(a3 - 1, b2); c0 += 1) + s1(c0); + for (int c0 = a3; c0 <= b3; c0 += 1) { + if (c0 >= a1 && b1 >= c0) + s0(c0); + if (c0 >= a2 && b2 >= c0) + s1(c0); + s2(c0); + } + for (int c0 = max(max(a3, b3 + 1), a2); c0 <= min(a1 - 1, b2); c0 += 1) + s1(c0); + for (int c0 = max(max(a1, a3), b3 + 1); c0 <= b1; c0 += 1) { + s0(c0); + if (c0 >= a2 && b2 >= c0) + s1(c0); + } + for (int c0 = max(max(max(max(a1, b1 + 1), a3), b3 + 1), a2); c0 <= b2; c0 += 1) + s1(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak1-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-0.in new file mode 100644 index 00000000000..4cf37cb3192 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-0.in @@ -0,0 +1,3 @@ +[a3, b3, a2, b2, a1, b1] -> { s2[i] -> [i, 2] : i >= a3 and i <= b3; s0[i] -> [i, 0] : i >= a1 and i <= b1; s1[i] -> [i, 1] : i >= a2 and i <= b2 } +{ : } +[a1, b1] -> { [i0, i1] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak1-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-1.c new file mode 100644 index 00000000000..7fdda1dd58c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-1.c @@ -0,0 +1,55 @@ +{ + for (int c0 = a2; c0 <= min(min(a1 - 1, a3 - 1), b2); c0 += 1) + s1(c0); + for (int c0 = a3; c0 <= min(min(a1 - 1, b3), a2 - 1); c0 += 1) + s2(c0); + for (int c0 = max(a3, a2); c0 <= min(min(a1 - 1, b3), b2); c0 += 1) { + s1(c0); + s2(c0); + } + for (int c0 = a1; c0 <= min(min(b1, a3 - 1), a2 - 1); c0 += 1) + s0(c0); + for (int c0 = max(a1, a2); c0 <= min(min(b1, a3 - 1), b2); c0 += 1) { + s0(c0); + s1(c0); + } + for (int c0 = max(max(a1, b1 + 1), a2); c0 <= min(a3 - 1, b2); c0 += 1) + s1(c0); + for (int c0 = max(a1, a3); c0 <= min(min(b1, b3), a2 - 1); c0 += 1) { + s0(c0); + s2(c0); + } + for (int c0 = max(max(a1, b1 + 1), a3); c0 <= min(b3, a2 - 1); c0 += 1) + s2(c0); + for (int c0 = max(max(a1, a3), a2); c0 <= min(min(b1, b3), b2); c0 += 1) { + s0(c0); + s1(c0); + s2(c0); + } + for (int c0 = max(max(max(a1, b1 + 1), a3), a2); c0 <= min(b3, b2); c0 += 1) { + s1(c0); + s2(c0); + } + for (int c0 = max(max(a3, a2), b2 + 1); c0 <= min(a1 - 1, b3); c0 += 1) + s2(c0); + for (int c0 = max(max(a1, a2), b2 + 1); c0 <= min(b1, a3 - 1); c0 += 1) + s0(c0); + for (int c0 = max(max(max(a1, a3), a2), b2 + 1); c0 <= min(b1, b3); c0 += 1) { + s0(c0); + s2(c0); + } + for (int c0 = max(max(max(max(a1, b1 + 1), a3), a2), b2 + 1); c0 <= b3; c0 += 1) + s2(c0); + for (int c0 = max(max(a3, b3 + 1), a2); c0 <= min(a1 - 1, b2); c0 += 1) + s1(c0); + for (int c0 = max(max(a1, a3), b3 + 1); c0 <= min(b1, a2 - 1); c0 += 1) + s0(c0); + for (int c0 = max(max(max(a1, a3), b3 + 1), a2); c0 <= min(b1, b2); c0 += 1) { + s0(c0); + s1(c0); + } + for (int c0 = max(max(max(max(a1, b1 + 1), a3), b3 + 1), a2); c0 <= b2; c0 += 1) + s1(c0); + for (int c0 = max(max(max(max(a1, a3), b3 + 1), a2), b2 + 1); c0 <= b1; c0 += 1) + s0(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak1-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-1.in new file mode 100644 index 00000000000..75c96d49895 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak1-1.in @@ -0,0 +1,3 @@ +[a3, b3, a2, b2, a1, b1] -> { s2[i] -> [i, 2] : i >= a3 and i <= b3; s0[i] -> [i, 0] : i >= a1 and i <= b1; s1[i] -> [i, 1] : i >= a2 and i <= b2 } +{ : } +[a1, b1] -> { [i0, i1] -> separate[o0] : o0 >= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak2-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-0.c new file mode 100644 index 00000000000..3f51dbca273 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-0.c @@ -0,0 +1,26 @@ +{ + for (int c0 = a1; c0 <= min(b1, a2 - 1); c0 += 1) + for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); + if (c2 >= d2 + 1) { + for (int c0 = max(a1, a2); c0 <= min(b1, b2); c0 += 1) + for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); + } else + for (int c0 = a2; c0 <= b2; c0 += 1) { + if (c0 >= a1 && b1 >= c0) + for (int c1_0 = c1; c1_0 <= min(d1, c2 - 1); c1_0 += 1) + s0(c0, c1_0); + for (int c1_0 = c2; c1_0 <= d2; c1_0 += 1) { + if (c0 >= a1 && b1 >= c0 && c1_0 >= c1 && d1 >= c1_0) + s0(c0, c1_0); + s1(c0, c1_0); + } + if (c0 >= a1 && b1 >= c0) + for (int c1_0 = max(c1, d2 + 1); c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); + } + for (int c0 = max(max(a1, a2), b2 + 1); c0 <= b1; c0 += 1) + for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak2-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-0.in new file mode 100644 index 00000000000..da7a6953bf3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-0.in @@ -0,0 +1,3 @@ +[a2, b2, c2, d2, a1, b1, c1, d1] -> { s0[i, j] -> [i, j, 0] : i >= a1 and i <= b1 and j >= c1 and j <= d1; s1[i, j] -> [i, j, 1] : i >= a2 and i <= b2 and j >= c2 and j <= d2 } +{ : } +[a1, b1, c1, d1] -> { [i0, i1, i2] -> separate[o0] : o0 >= 2 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak2-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-1.c new file mode 100644 index 00000000000..cc20357718a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-1.c @@ -0,0 +1,35 @@ +{ + for (int c0 = a1; c0 <= min(b1, a2 - 1); c0 += 1) + for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); + if (c2 >= d2 + 1) { + for (int c0 = max(a1, a2); c0 <= min(b1, b2); c0 += 1) + for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); + } else + for (int c0 = a2; c0 <= b2; c0 += 1) { + if (a1 >= c0 + 1) { + for (int c1_0 = c2; c1_0 <= d2; c1_0 += 1) + s1(c0, c1_0); + } else if (c0 >= b1 + 1) { + for (int c1_0 = c2; c1_0 <= d2; c1_0 += 1) + s1(c0, c1_0); + } else { + for (int c1_0 = c1; c1_0 <= min(d1, c2 - 1); c1_0 += 1) + s0(c0, c1_0); + for (int c1_0 = c2; c1_0 <= min(c1 - 1, d2); c1_0 += 1) + s1(c0, c1_0); + for (int c1_0 = max(c1, c2); c1_0 <= min(d1, d2); c1_0 += 1) { + s0(c0, c1_0); + s1(c0, c1_0); + } + for (int c1_0 = max(c1, d2 + 1); c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); + for (int c1_0 = max(max(c1, d1 + 1), c2); c1_0 <= d2; c1_0 += 1) + s1(c0, c1_0); + } + } + for (int c0 = max(max(a1, a2), b2 + 1); c0 <= b1; c0 += 1) + for (int c1_0 = c1; c1_0 <= d1; c1_0 += 1) + s0(c0, c1_0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak2-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-1.in new file mode 100644 index 00000000000..c92ac3c82c8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak2-1.in @@ -0,0 +1,3 @@ +[a2, b2, c2, d2, a1, b1, c1, d1] -> { s0[i, j] -> [i, j, 0] : i >= a1 and i <= b1 and j >= c1 and j <= d1; s1[i, j] -> [i, j, 1] : i >= a2 and i <= b2 and j >= c2 and j <= d2 } +{ : } +[a1, b1, c1, d1] -> { [i0, i1, i2] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak3-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-0.c new file mode 100644 index 00000000000..06be04aae78 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-0.c @@ -0,0 +1,8 @@ +for (int c0 = a; c0 <= b + 20; c0 += 1) { + if (b >= c0) + s0(c0); + if (c0 >= a + 10 && b + 10 >= c0) + s1(c0); + if (c0 >= a + 20) + s2(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak3-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-0.in new file mode 100644 index 00000000000..a4c4de9c88c --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-0.in @@ -0,0 +1,3 @@ +[a, b] -> { s2[i] -> [i, 2] : i >= 20 + a and i <= 20 + b; s0[i] -> [i, 0] : i >= a and i <= b; s1[i] -> [i, 1] : i >= 10 + a and i <= 10 + b } +{ : } +[a, b] -> { [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak3-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-1.c new file mode 100644 index 00000000000..3045b2195cb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-1.c @@ -0,0 +1,21 @@ +{ + for (int c0 = a; c0 <= min(a + 9, b); c0 += 1) + s0(c0); + for (int c0 = a + 10; c0 <= min(a + 19, b); c0 += 1) { + s0(c0); + s1(c0); + } + for (int c0 = max(a + 10, b + 1); c0 <= min(a + 19, b + 10); c0 += 1) + s1(c0); + for (int c0 = a + 20; c0 <= b; c0 += 1) { + s0(c0); + s1(c0); + s2(c0); + } + for (int c0 = max(a + 20, b + 1); c0 <= b + 10; c0 += 1) { + s1(c0); + s2(c0); + } + for (int c0 = max(a + 20, b + 11); c0 <= b + 20; c0 += 1) + s2(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak3-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-1.in new file mode 100644 index 00000000000..ae319e5ddeb --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak3-1.in @@ -0,0 +1,3 @@ +[a, b] -> { s2[i] -> [i, 2] : i >= 20 + a and i <= 20 + b; s0[i] -> [i, 0] : i >= a and i <= b; s1[i] -> [i, 1] : i >= 10 + a and i <= 10 + b } +{ : } +[a, b] -> { [i0, i1] -> atomic[o0] : o0 <= -1; [i0, i1] -> separate[o0] : o0 >= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak4-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-0.c new file mode 100644 index 00000000000..5cefe4be4d3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-0.c @@ -0,0 +1,4 @@ +for (int c0 = max(max(max(max(a1, a2), a3), a4), a5); c0 <= min(min(min(min(b1, b2), b3), b4), b5); c0 += 1) { + s0(c0); + s1(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak4-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-0.in new file mode 100644 index 00000000000..9862df21458 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-0.in @@ -0,0 +1,3 @@ +[a1, a2, a3, a4, a5, b1, b2, b3, b4, b5] -> { s0[i] -> [i, 0] : i >= a1 and i >= a2 and i >= a3 and i >= a4 and i >= a5 and i <= b1 and i <= b2 and i <= b3 and i <= b4 and i <= b5; s1[i] -> [i, 1] : i >= a1 and i >= a2 and i >= a3 and i >= a4 and i >= a5 and i <= b1 and i <= b2 and i <= b3 and i <= b4 and i <= b5 } +{ : } +[a1, a2, a3, a4, a5, b1, b2, b3, b4, b5] -> { [i0, i1] -> separate[o0] : o0 >= 1; [i0, i1] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak4-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-1.c new file mode 100644 index 00000000000..5cefe4be4d3 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-1.c @@ -0,0 +1,4 @@ +for (int c0 = max(max(max(max(a1, a2), a3), a4), a5); c0 <= min(min(min(min(b1, b2), b3), b4), b5); c0 += 1) { + s0(c0); + s1(c0); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/wak4-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-1.in new file mode 100644 index 00000000000..076cdd1f48a --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/wak4-1.in @@ -0,0 +1,3 @@ +[a1, a2, a3, a4, a5, b1, b2, b3, b4, b5] -> { s0[i] -> [i, 0] : i >= a1 and i >= a2 and i >= a3 and i >= a4 and i >= a5 and i <= b1 and i <= b2 and i <= b3 and i <= b4 and i <= b5; s1[i] -> [i, 1] : i >= a1 and i >= a2 and i >= a3 and i >= a4 and i >= a5 and i <= b1 and i <= b2 and i <= b3 and i <= b4 and i <= b5 } +{ : } +[a1, a2, a3, a4, a5, b1, b2, b3, b4, b5] -> { [i0, i1] -> separate[o0] : o0 >= 0; [i0, i1] -> atomic[o0] : o0 <= -1 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/x-0.c b/polly/lib/External/isl/test_inputs/codegen/omega/x-0.c new file mode 100644 index 00000000000..f890920d709 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/x-0.c @@ -0,0 +1,14 @@ +for (int c0 = 1; c0 <= 11; c0 += 1) { + for (int c1 = max(1, c0 - 3); c1 <= min(c0, -c0 + 8); c1 += 1) + s1(c1, c0 - c1 + 1); + for (int c1 = max(1, -c0 + 9); c1 <= min(c0 - 4, -c0 + 12); c1 += 1) + s0(c1, c0 + c1 - 8); + for (int c1 = max(c0 - 3, -c0 + 9); c1 <= min(c0, -c0 + 12); c1 += 1) { + s0(c1, c0 + c1 - 8); + s1(c1, c0 - c1 + 1); + } + for (int c1 = max(c0 - 3, -c0 + 13); c1 <= min(8, c0); c1 += 1) + s1(c1, c0 - c1 + 1); + for (int c1 = max(c0 + 1, -c0 + 9); c1 <= min(8, -c0 + 12); c1 += 1) + s0(c1, c0 + c1 - 8); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/x-0.in b/polly/lib/External/isl/test_inputs/codegen/omega/x-0.in new file mode 100644 index 00000000000..24340efe4d8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/x-0.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [8 - i + j, i, 0] : i >= 1 and i <= 8 and j >= 1 and j <= 4; s1[i, j] -> [-1 + i + j, i, 1] : i >= 1 and i <= 8 and j >= 1 and j <= 4 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/x-1.c b/polly/lib/External/isl/test_inputs/codegen/omega/x-1.c new file mode 100644 index 00000000000..f890920d709 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/x-1.c @@ -0,0 +1,14 @@ +for (int c0 = 1; c0 <= 11; c0 += 1) { + for (int c1 = max(1, c0 - 3); c1 <= min(c0, -c0 + 8); c1 += 1) + s1(c1, c0 - c1 + 1); + for (int c1 = max(1, -c0 + 9); c1 <= min(c0 - 4, -c0 + 12); c1 += 1) + s0(c1, c0 + c1 - 8); + for (int c1 = max(c0 - 3, -c0 + 9); c1 <= min(c0, -c0 + 12); c1 += 1) { + s0(c1, c0 + c1 - 8); + s1(c1, c0 - c1 + 1); + } + for (int c1 = max(c0 - 3, -c0 + 13); c1 <= min(8, c0); c1 += 1) + s1(c1, c0 - c1 + 1); + for (int c1 = max(c0 + 1, -c0 + 9); c1 <= min(8, -c0 + 12); c1 += 1) + s0(c1, c0 + c1 - 8); +} diff --git a/polly/lib/External/isl/test_inputs/codegen/omega/x-1.in b/polly/lib/External/isl/test_inputs/codegen/omega/x-1.in new file mode 100644 index 00000000000..24340efe4d8 --- /dev/null +++ b/polly/lib/External/isl/test_inputs/codegen/omega/x-1.in @@ -0,0 +1,3 @@ +{ s0[i, j] -> [8 - i + j, i, 0] : i >= 1 and i <= 8 and j >= 1 and j <= 4; s1[i, j] -> [-1 + i + j, i, 1] : i >= 1 and i <= 8 and j >= 1 and j <= 4 } +{ : } +{ [i0, i1, i2] -> separate[o0] : o0 >= 1; [i0, i1, i2] -> atomic[o0] : o0 <= 0 } |