https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91789
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- We do manage if you swap the order of the first 2 comparisons, because this way we don't need to remember symbolic ranges: a<0 yields a range [0,inf] for a, b<a yields [0,inf] for b, and b<0 folds to false. If ranger "fixes" this by working backwards, please make sure it works with both orders.