re PR tree-optimization/91734 (gcc skip an if statement with "-O1 -ffast-math")
authorJakub Jelinek <jakub@redhat.com>
Sat, 5 Oct 2019 07:36:09 +0000 (09:36 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 5 Oct 2019 07:36:09 +0000 (09:36 +0200)
commit0043b5280e6f571819d8764d76594a7a20467d00
tree67f05915a1d5bd9c404586fb97a5e8fbc421c015
parent30648d02155fd2cf5e15c9741f08ed08554fa3d6
re PR tree-optimization/91734 (gcc skip an if statement  with "-O1 -ffast-math")

PR tree-optimization/91734
* generic-match-head.c: Include fold-const-call.h.
* match.pd (sqrt(x) cmp c): Check the boundary value and
in case inexact computation of c*c affects comparison of the boundary,
turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
or GT_EXPR into GE_EXPR.  Punt for sqrt comparisons against NaN and
for -frounding-math.  For c2, try the next smaller or larger floating
point constant depending on comparison code and if it has the same
sqrt as c2, use it instead of c2.

* gcc.dg/pr91734.c: New test.

From-SVN: r276621
gcc/ChangeLog
gcc/generic-match-head.c
gcc/match.pd
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr91734.c [new file with mode: 0644]