https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107569

--- Comment #5 from Andrew Macleod <amacleod at redhat dot com> ---
(In reply to Jakub Jelinek from comment #4)
> The cdce case is something I've mentioned today:
> https://gcc.gnu.org/pipermail/gcc-patches/2022-November/605338.html
> The comparisons in there are artificial and so unlike user comparisons we
> should (if they were marked somehow) be able to optimize them away if frange
> can prove their result.
> But that isn't something happening on the #c0 testcase, is it?

in vrp2 I see:
384      range_of_stmt () at stmt if (_9 u>= 0.0)
385        range_of_expr(_9) at stmt if (_9 u>= 0.0)
           TRUE : (385) range_of_expr (_9) [frange] double [-0.0 (-0x0.0p+0),
+Inf] +-NAN
         TRUE : (384) range_of_stmt () [irange] bool VARYING

so we think that 
[frange] double [-0.0 (-0x0.0p+0), +Inf] +-NAN  u>=   0.0  does not fold.  

possibly some signalling NaN thing not allowing us to remove it?

Reply via email to