https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88575
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2019-01-02 00:00:00 |2023-6-9 --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- 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 ....