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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |aldyh at gcc dot gnu.org

--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
It looks like both operator_equal::fold_range and
operator_not_equal::fold_range are special casing signed zeros, and are using
the hull, instead of the inner bounds.

else if (real_iszero (&op1.lower_bound ())
           && real_iszero (&op1.upper_bound ())
           && real_iszero (&op2.lower_bound ())
           && real_iszero (&op2.upper_bound ())
           && !maybe_isnan (op1, op2))
    // [-0.0, 0.0] == [-0.0, 0.0] or similar.
    r = range_true (type);

Reply via email to