https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88575
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Depends on| |110199
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #5)
> So VRP handles floating point now but it still does not optimize it:
> Folding statement: if (a_2(D) <= b_3(D))
> Registering value_relation (a_2(D) <= b_3(D)) on (2->3)
>
> Visiting conditional with predicate: if (a_2(D) <= b_3(D))
>
> With known ranges
> a_2(D): [frange] double VARYING b_3(D): [frange] double VARYING
>
> Predicate evaluates to: DON'T KNOW
> Not folded
> Folding statement: _4 = MIN_EXPR <a_2(D), b_3(D)>;
> Not folded
>
>
> While the int does this:
> Folding statement: _4 = MIN_EXPR <a_2(D), b_3(D)>;
> folding with relation a_2(D) <= b_3(D)
> Global Exported: _4 = [irange] int [-INF, 2147483646]
> Not folded
>
> Which is a regression from GCC 12 ....
I filed PR 110199 for that. Maybe once that is fixed the FP case will work
too.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110199
[Bug 110199] [12/13/14 Regression] Missing VRP transformation with MIN_EXPR and
known relation