diff options
author | Tejas Joshi <tejasjoshi9673@gmail.com> | 2019-08-26 12:32:29 +0000 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2019-08-26 14:32:29 +0200 |
commit | 7d7b99f95bf2517caab5f9300090b471135b4fc0 (patch) | |
tree | c215f66b35c9f3508ceb670fbaeae05b7d223c3d /gcc/doc | |
parent | 48a31a09839b12127ce7c40d7adc4bd5bf1d3407 (diff) | |
download | gcc-7d7b99f95bf2517caab5f9300090b471135b4fc0.zip gcc-7d7b99f95bf2517caab5f9300090b471135b4fc0.tar.gz gcc-7d7b99f95bf2517caab5f9300090b471135b4fc0.tar.bz2 |
Builtin function roundeven folding implementation
2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
* builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
for ROUNDEVEN.
* builtins.def: Added function definitions for roundeven function
variants.
* fold-const-call.c (fold_const_call_ss): Added case for roundeven
function call. Adjust condition for floor, ceil, trunc and round.
* fold-const.c (negate_mathfn_p): Added case for roundeven function.
(tree_call_nonnegative_warnv_p): Added case for roundeven function.
(integer_valued_real_call_p): Added case for roundeven function.
* real.c (is_even): New function. Returns true if real number is even,
otherwise returns false.
(is_halfway_below): New function. Returns true if real number is
halfway between two integers, else return false.
(real_roundeven): New function. Round real number to nearest integer,
rounding halfway cases towards even.
* real.h (real_value): Added descriptive comments. Added function
declaration for roundeven function.
* doc/extend.texi (Other Builtins): List roundeven variants among
functions which can be handled as builtins.
gcc/testsuite/ChangeLog:
2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
* gcc.dg/torture/builtin-round-roundeven.c: New test.
* gcc.dg/torture/builtin-round-roundevenf128.c: New test.
From-SVN: r274927
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 235be99..4aea4d3 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -12448,7 +12448,8 @@ Outside strict ISO C mode (@option{-ansi}, @option{-std=c90}, @code{j1f}, @code{j1l}, @code{j1}, @code{jnf}, @code{jnl}, @code{jn}, @code{lgammaf_r}, @code{lgammal_r}, @code{lgamma_r}, @code{mempcpy}, @code{pow10f}, @code{pow10l}, @code{pow10}, @code{printf_unlocked}, -@code{rindex}, @code{scalbf}, @code{scalbl}, @code{scalb}, +@code{rindex}, @code{roundeven}, @code{roundevenf}, @code{roudnevenl}, +@code{scalbf}, @code{scalbl}, @code{scalb}, @code{signbit}, @code{signbitf}, @code{signbitl}, @code{signbitd32}, @code{signbitd64}, @code{signbitd128}, @code{significandf}, @code{significandl}, @code{significand}, @code{sincosf}, |