summaryrefslogtreecommitdiff
path: root/isl_test.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2009-01-27 10:48:32 +0100
committerSven Verdoolaege <skimo@kotnet.org>2009-02-04 12:36:51 +0100
commitc9c4f446e9f40d07f76235d81c2b250e4ef94bd8 (patch)
tree2410f1e731e7b2d5b76bfe66923913ea00bea394 /isl_test.c
parent269161669db330f7260531a11bb401c075affc8a (diff)
downloadisl-c9c4f446e9f40d07f76235d81c2b250e4ef94bd8.tar.gz
isl-c9c4f446e9f40d07f76235d81c2b250e4ef94bd8.tar.bz2
isl-c9c4f446e9f40d07f76235d81c2b250e4ef94bd8.zip
isl_map_simplify.c: normalize_divs: fix use of variable compression
When there is a div that depends on another div, then we need to be careful not to look for the other div in the variable compression matrix.
Diffstat (limited to 'isl_test.c')
-rw-r--r--isl_test.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/isl_test.c b/isl_test.c
index 8db04a4f..9ec4a8ab 100644
--- a/isl_test.c
+++ b/isl_test.c
@@ -266,6 +266,35 @@ void test_div(struct isl_ctx *ctx)
assert(bset->n_div == 1);
isl_basic_set_free(bset);
+ /* test 8 */
+ dim = isl_dim_set_alloc(ctx, 0, 4);
+ bset = isl_basic_set_universe(dim);
+
+ c = isl_equality_alloc(isl_dim_copy(bset->dim));
+ isl_int_set_si(v, -1);
+ 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);
+ isl_int_set_si(v, -3);
+ isl_constraint_set_coefficient(c, isl_dim_set, 3, v);
+ div = isl_div_alloc(isl_dim_copy(bset->dim));
+ c = isl_constraint_add_div(c, div, &pos);
+ isl_int_set_si(v, 6);
+ isl_constraint_set_coefficient(c, isl_dim_div, pos, v);
+ bset = isl_basic_set_add_constraint(bset, c);
+
+ c = isl_equality_alloc(isl_dim_copy(bset->dim));
+ isl_int_set_si(v, -1);
+ 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);
+ isl_int_set_si(v, 1);
+ isl_constraint_set_constant(c, v);
+ bset = isl_basic_set_add_constraint(bset, c);
+
+ assert(bset->n_div == 1);
+ isl_basic_set_free(bset);
+
isl_int_clear(v);
}