]> gcc.gnu.org Git - gcc.git/commit
gimple-range-op: Handle sqrt (basic bounds only)
authorJakub Jelinek <jakub@redhat.com>
Fri, 28 Apr 2023 07:10:37 +0000 (09:10 +0200)
committerJakub Jelinek <jakub@redhat.com>
Fri, 28 Apr 2023 07:11:59 +0000 (09:11 +0200)
commitba39d2be0bab29cfb68cdb845b98353d11442244
treef57306e74c5cdb5b58e2aac75ee8e2fee78b741f
parent9ffddbfc738a941ca3d32187a0e3f2616c7dd522
gimple-range-op: Handle sqrt (basic bounds only)

The following patch adds sqrt support (but similarly to sincos, only
dumb basic ranges only).

Will improve this incrementally and sin/cos as well.

2023-04-28  Jakub Jelinek  <jakub@redhat.com>

* gimple-range-op.cc (class cfn_sqrt): New type.
(op_cfn_sqrt): New variable.
(gimple_range_op_handler::maybe_builtin_call): Handle
CASE_CFN_SQRT{,_FN}.

* gcc.dg/tree-ssa/range-sqrt.c: New test.
* gfortran.dg/ieee/ieee_6.f90: Make x volatile to avoid
ranger optimizing sqrt (-1) call away because it is only used in
test for whether it returns NaN.
gcc/gimple-range-op.cc
gcc/testsuite/gcc.dg/tree-ssa/range-sqrt.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/ieee/ieee_6.f90
This page took 0.077467 seconds and 5 git commands to generate.