On Fri, Apr 21, 2023 at 10:43:44PM +0200, Mikael Morin wrote:
> Hello,
>
> > --- gcc/gimple-range-op.cc.jj 2023-04-21 17:09:48.250367999 +0200
> > +++ gcc/gimple-range-op.cc 2023-04-21 18:37:26.048325391 +0200
> > @@ -439,20 +436,38 @@ public:
> > r.set_varying (type);
> > return true;
> > }
> > +
> > // Results outside of [-1.0, +1.0] are impossible.
> > REAL_VALUE_TYPE lb = lhs.lower_bound ();
> > REAL_VALUE_TYPE ub = lhs.upper_bound ();
> > - if (real_less (&lb, &dconstm1)
> > - || real_less (&dconst1, &ub))
> > + if (real_less (&lb, &dconstm1) || real_less (&dconst1, &ub))
> > {
>
> Shouldn't lb and ub be swapped in this condition?
Yes, they should.
> If I understand correctly, we are looking for ranges like [whatever,x] where
> x < -1.0 or [y, whatever] where 1.0 < y.
Jakub