diff options
author | Sven Verdoolaege <skimo@kotnet.org> | 2009-01-27 10:48:32 +0100 |
---|---|---|
committer | Sven Verdoolaege <skimo@kotnet.org> | 2009-02-04 12:36:51 +0100 |
commit | c9c4f446e9f40d07f76235d81c2b250e4ef94bd8 (patch) | |
tree | 2410f1e731e7b2d5b76bfe66923913ea00bea394 /isl_test.c | |
parent | 269161669db330f7260531a11bb401c075affc8a (diff) | |
download | isl-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.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -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); } |