diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-10-31 16:01:51 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-10-31 16:01:51 +0000 |
commit | 540af6e2f172a016719d3970433b9f6aeb0097f6 (patch) | |
tree | 01fe47b8d33f0de641ba55e0bcaa70f7eea285e4 | |
parent | 58af72b4e29d6e3bab230d10e42b1c74a8e5d7ab (diff) | |
download | glibc-540af6e2f172a016719d3970433b9f6aeb0097f6.zip glibc-540af6e2f172a016719d3970433b9f6aeb0097f6.tar.gz glibc-540af6e2f172a016719d3970433b9f6aeb0097f6.tar.bz2 |
Adjust __MATH_EVAL_FMT2 definition to handle _Float16 better.
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch adds an additional case in the definition of
__MATH_EVAL_FMT2, as used in defining iseqsig: when
__FLT_EVAL_METHOD__ is 0 or 32, it adds 0.0f to the arguments, so that
the correct function would be selected in the case of _Float16
arguments with excess precision (were glibc to support _Float16, which
of course __MATH_TG and other facilities do not at present - and
_Float16 support is not part of what this patch series is aiming for,
but this particular fix is simple so is included anyway).
Tested for x86_64.
* math/math.h
[__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32]
(__MATH_EVAL_FMT2): Define to add 0.0f.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | math/math.h | 2 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2017-10-31 Joseph Myers <joseph@codesourcery.com> + + * math/math.h + [__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32] + (__MATH_EVAL_FMT2): Define to add 0.0f. + 2017-10-31 Alan Modra <amodra@gmail.com> * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S: Don't diff --git a/math/math.h b/math/math.h index 125d845..326fd8e 100644 --- a/math/math.h +++ b/math/math.h @@ -1144,6 +1144,8 @@ iszero (__T __val) # define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0L) # elif __FLT_EVAL_METHOD__ == 1 || __FLT_EVAL_METHOD__ > 32 # define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0) +# elif __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32 +# define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0f) # else # define __MATH_EVAL_FMT2(x, y) ((x) + (y)) # endif |