isl_map_coalesce: normalize shifted facet before wrapping
Forms of coalescing involving wrapping are only applied
to integer sets. Constraint normalization ensures that
for each constraint of an integer set, the coefficients
of the variables (i.e., ignoring the constant term)
have no common factor.
This means, in particular, that after shifting a facet
by one, the result is only parallel to some other facet
if it has all equal or all opposite coefficients
(and not some other multiple).
However, constraint normalization may not always get applied.
This happens in particular when hidden equality constraints
are discovered and these are used to perform the fangcheng
procedure (Gaussian elimination).
A shifted facet may then be equal to some multiple (> 1)
of some other facet and may therefore not be discovered
as being parallel to the other facet, breaking invariants,
Arguably, constraints should also get normalized during
the fangcheng procedure, but start by normalizing the facet
after shifting.
Reported-by: Andrei Lascu <alas.20073@gmail.com>
Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>