isl_map_simplify.c: int_between_bounds: exploit the Omega test
isl_map_simplify.c: int_between_bounds: exploit the Omega test

When looking for redundant existentially quantified variables
by checking that each pair of lower and upper bounds admits an intermediate
integer value, the test inequality used to perform this check may
get scaled down with the constant term rounded down.  In this case
the test inequality may be equal to the result of applying Fourier-Motzkin
to the pair.  If so, the test inequality is known to hold and there is
no need to test it explicitly.  This is essentially the Omega test.

For the recently added test case
{ [m, w] : exists a : w - 2m - 5 <= 3a <= m - 2w }
the constructed test inequality is -3w + 3m + 3 >= 0, which is scaled
down to -w + m + 1 >= 0.  Applying Fourier-Motzkin to the two constraints
results in -3w + 3m + 5 >= 0, which also scales down to -w + m + 1 >= 0.
The test inequality is therefore guaranteed to hold and does not need
to be evaluated explicitly.

Signed-off-by: Sven Verdoolaege <e5350bbed4977f5eb8ae1dc6abd9ae59d21ace75@kotnet.org>

PollyLabs/isl,tobig/isl,tobig/isl,nicolasvasilache/isl,PollyLabs/isl,UBERTC/isl,inducer/isl-mirror,UBERTC/isl,nicolasvasilache/isl,Meinersbur/isl,Meinersbur/isl,UBERTC/isl,inducer/isl-mirror,inducer/isl-mirror,nicolasvasilache/isl,UBERTC/isl,nicolasvasilache/isl,Meinersbur/isl,Meinersbur/isl,inducer/isl-mirror,PollyLabs/isl,nicolasvasilache/isl,tobig/isl,PollyLabs/isl,tobig/isl,PollyLabs/isl,inducer/isl-mirror