diff options
Diffstat (limited to 'polly/lib/External/isl/isl_test.c')
-rw-r--r-- | polly/lib/External/isl/isl_test.c | 165 |
1 files changed, 104 insertions, 61 deletions
diff --git a/polly/lib/External/isl/isl_test.c b/polly/lib/External/isl/isl_test.c index 905032e63f6..07700e1e99f 100644 --- a/polly/lib/External/isl/isl_test.c +++ b/polly/lib/External/isl/isl_test.c @@ -290,7 +290,7 @@ static int test_read(isl_ctx *ctx) static int test_bounded(isl_ctx *ctx) { isl_set *set; - int bounded; + isl_bool bounded; set = isl_set_read_from_str(ctx, "[n] -> {[i] : 0 <= i <= n }"); bounded = isl_set_is_bounded(set); @@ -343,16 +343,16 @@ static int test_construction(isl_ctx *ctx) c = isl_constraint_alloc_inequality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_param, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_param, 0, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_inequality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, -5); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); bset = isl_basic_set_add_constraint(bset, c); isl_local_space_free(ls); @@ -685,20 +685,20 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 1, 2); @@ -714,20 +714,20 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 1, 2); @@ -743,20 +743,20 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -3); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 4); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 1, 2); @@ -772,20 +772,20 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 2); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 6); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 1, 2); @@ -801,16 +801,16 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, -3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 2, 1); @@ -826,16 +826,16 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 6); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, -3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 2, 1); @@ -860,13 +860,13 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, -3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); isl_int_set_si(v, -3); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); isl_int_set_si(v, 6); - isl_constraint_set_coefficient(c, isl_dim_set, 3, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 3, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 3, 1); @@ -885,22 +885,22 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, -3); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); isl_int_set_si(v, -3); - isl_constraint_set_coefficient(c, isl_dim_set, 3, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 3, v); isl_int_set_si(v, 6); - isl_constraint_set_coefficient(c, isl_dim_set, 4, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 4, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); isl_int_set_si(v, 1); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 4, 1); @@ -919,20 +919,20 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 1, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 1, v); isl_int_set_si(v, -2); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, -1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, 3); - isl_constraint_set_coefficient(c, isl_dim_set, 3, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 3, v); isl_int_set_si(v, 2); - isl_constraint_set_constant(c, v); + c = isl_constraint_set_constant(c, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 2, 2); @@ -951,9 +951,9 @@ static int test_div(isl_ctx *ctx) c = isl_constraint_alloc_equality(isl_local_space_copy(ls)); isl_int_set_si(v, 1); - isl_constraint_set_coefficient(c, isl_dim_set, 0, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 0, v); isl_int_set_si(v, -2); - isl_constraint_set_coefficient(c, isl_dim_set, 2, v); + c = isl_constraint_set_coefficient(c, isl_dim_set, 2, v); bset = isl_basic_set_add_constraint(bset, c); bset = isl_basic_set_project_out(bset, isl_dim_set, 2, 1); @@ -1895,6 +1895,14 @@ struct { { 1, "[n, m] -> { S_0[i] : (-n + i) mod 3 = 0 and m >= 3 + n and " "i >= n and 3*floor((2 + n + 2m)/3) <= n + 3m - i; " "S_0[n] : n <= m <= 2 + n }" }, + { 1, "{ [a, b] : exists (e0: 0 <= a <= 1 and b >= 0 and " + "2e0 >= -5 + a + 2b and 2e0 >= -1 + a + b and " + "2e0 <= a + b); " + "[a, b] : exists (e0: 0 <= a <= 1 and 2e0 >= -5 + a + 2b and " + "2e0 >= -1 - a + b and 2e0 <= -a + b and " + "2e0 < -a + 2b) }" }, + { 1, "{ [i, j, i - 8j] : 8 <= i <= 63 and -7 + i <= 8j <= i; " + "[i, 0, i] : 0 <= i <= 7 }" }, }; /* A specialized coalescing test case that would result @@ -4875,8 +4883,27 @@ static int test_disjoint(isl_ctx *ctx) return 0; } +/* Inputs for isl_pw_multi_aff_is_equal tests. + * "f1" and "f2" are the two function that need to be compared. + * "equal" is the expected result. + */ +struct { + int equal; + const char *f1; + const char *f2; +} pma_equal_tests[] = { + { 1, "[N] -> { [floor(N/2)] : 0 <= N <= 1 }", + "[N] -> { [0] : 0 <= N <= 1 }" }, + { 1, "[N] -> { [floor(N/2)] : 0 <= N <= 2 }", + "[N] -> { [0] : 0 <= N <= 1; [1] : N = 2 }" }, + { 0, "[N] -> { [floor(N/2)] : 0 <= N <= 2 }", + "[N] -> { [0] : 0 <= N <= 1 }" }, + { 0, "{ [NaN] }", "{ [NaN] }" }, +}; + int test_equal(isl_ctx *ctx) { + int i; const char *str; isl_set *set, *set2; int equal; @@ -4893,13 +4920,29 @@ int test_equal(isl_ctx *ctx) if (equal) isl_die(ctx, isl_error_unknown, "unexpected result", return -1); + for (i = 0; i < ARRAY_SIZE(pma_equal_tests); ++i) { + int expected = pma_equal_tests[i].equal; + isl_pw_multi_aff *f1, *f2; + + f1 = isl_pw_multi_aff_read_from_str(ctx, pma_equal_tests[i].f1); + f2 = isl_pw_multi_aff_read_from_str(ctx, pma_equal_tests[i].f2); + equal = isl_pw_multi_aff_is_equal(f1, f2); + isl_pw_multi_aff_free(f1); + isl_pw_multi_aff_free(f2); + if (equal < 0) + return -1; + if (equal != expected) + isl_die(ctx, isl_error_unknown, + "unexpected equality result", return -1); + } + return 0; } static int test_plain_fixed(isl_ctx *ctx, __isl_take isl_map *map, enum isl_dim_type type, unsigned pos, int fixed) { - int test; + isl_bool test; test = isl_map_plain_is_fixed(map, type, pos, NULL); isl_map_free(map); @@ -5340,7 +5383,7 @@ static int test_residue_class(isl_ctx *ctx) const char *str; isl_set *set; isl_int m, r; - int res; + isl_stat res; str = "{ [i,j] : j = 4 i + 1 and 0 <= i <= 100; " "[i,j] : j = 4 i + 3 and 500 <= i <= 600 }"; @@ -5351,7 +5394,7 @@ static int test_residue_class(isl_ctx *ctx) if (res >= 0 && (isl_int_cmp_si(m, 2) != 0 || isl_int_cmp_si(r, 1) != 0)) isl_die(ctx, isl_error_unknown, "incorrect residue class", - res = -1); + res = isl_stat_error); isl_int_clear(r); isl_int_clear(m); isl_set_free(set); @@ -6809,7 +6852,7 @@ const char *chambers_tests[] = { /* Add the domain of "cell" to "cells". */ -static int add_cell(__isl_take isl_cell *cell, void *user) +static isl_stat add_cell(__isl_take isl_cell *cell, void *user) { isl_basic_set_list **cells = user; isl_basic_set *dom; @@ -6818,7 +6861,7 @@ static int add_cell(__isl_take isl_cell *cell, void *user) isl_cell_free(cell); *cells = isl_basic_set_list_add(*cells, dom); - return *cells ? 0 : -1; + return *cells ? isl_stat_ok : isl_stat_error; } /* Check that the elements of "list" are pairwise disjoint. |