]> sourceware.org Git - glibc.git/commitdiff
Include bits/math-finite.h for more _FloatN, _FloatNx types.
authorJoseph Myers <joseph@codesourcery.com>
Mon, 30 Oct 2017 22:15:40 +0000 (22:15 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 30 Oct 2017 22:15:40 +0000 (22:15 +0000)
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch extends the includes of <bits/math-finite.h> to
cover all such types, under conditions analogous to those for
_Float128.

Tested for x86_64.

* math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]:
Include <bits/math-finite.h> with appropriate macros defined and
undefined.
[__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise.
[__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise.
[__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise.
[__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise.
[__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.

ChangeLog
math/math.h

index 395aacf7ad19a013675338a755af1e88c57c8964..b56499de314e557ab97ca05b5dab88cfe256242a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
 
+       * math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]:
+       Include <bits/math-finite.h> with appropriate macros defined and
+       undefined.
+       [__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise.
+       [__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise.
+       [__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise.
+       [__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise.
+       [__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.
+
        * math/math.h [!_Mfloat_] (_Mfloat_): Do not define.
        [!_Mlong_double_] (_Mlong_double_): Likewise.
        [!_Mfloat16_] (_Mfloat16_): Likewise.
index 88fd4bce54da24ecd0b0602a2410b7dd098d1b90..125d845c86477531e319ee58a306262535408ba1 100644 (file)
@@ -978,8 +978,74 @@ iszero (__T __val)
 
 # endif /* __USE_ISOC99.  */
 
-/* Include bits/math-finite.h for float128.  */
-# if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \
+/* Include bits/math-finite.h for _FloatN and _FloatNx.  */
+
+# if (__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !defined _LIBC))   \
+      && __GLIBC_USE (IEC_60559_TYPES_EXT)
+#  define _Mdouble_ _Float16
+#  define __MATH_DECLARING_DOUBLE 0
+#  define __MATH_DECLARING_FLOATN 1
+#  define __REDIRFROM_X(function, reentrant) \
+  function ## f16 ## reentrant
+#  if __HAVE_DISTINCT_FLOAT16
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f16 ## reentrant ## _finite
+#  else
+#   error "non-disinct _Float16"
+#  endif
+#  include <bits/math-finite.h>
+#  undef _Mdouble_
+#  undef __MATH_DECLARING_DOUBLE
+#  undef __MATH_DECLARING_FLOATN
+#  undef __REDIRFROM_X
+#  undef __REDIRTO_X
+# endif
+
+# if (__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !defined _LIBC))   \
+      && __GLIBC_USE (IEC_60559_TYPES_EXT)
+#  define _Mdouble_ _Float32
+#  define __MATH_DECLARING_DOUBLE 0
+#  define __MATH_DECLARING_FLOATN 1
+#  define __REDIRFROM_X(function, reentrant) \
+  function ## f32 ## reentrant
+#  if __HAVE_DISTINCT_FLOAT32
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f32 ## reentrant ## _finite
+#  else
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f ## reentrant ## _finite
+#  endif
+#  include <bits/math-finite.h>
+#  undef _Mdouble_
+#  undef __MATH_DECLARING_DOUBLE
+#  undef __MATH_DECLARING_FLOATN
+#  undef __REDIRFROM_X
+#  undef __REDIRTO_X
+# endif
+
+# if (__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !defined _LIBC))   \
+      && __GLIBC_USE (IEC_60559_TYPES_EXT)
+#  define _Mdouble_ _Float64
+#  define __MATH_DECLARING_DOUBLE 0
+#  define __MATH_DECLARING_FLOATN 1
+#  define __REDIRFROM_X(function, reentrant) \
+  function ## f64 ## reentrant
+#  if __HAVE_DISTINCT_FLOAT64
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f64 ## reentrant ## _finite
+#  else
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## reentrant ## _finite
+#  endif
+#  include <bits/math-finite.h>
+#  undef _Mdouble_
+#  undef __MATH_DECLARING_DOUBLE
+#  undef __MATH_DECLARING_FLOATN
+#  undef __REDIRFROM_X
+#  undef __REDIRTO_X
+# endif
+
+# if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \
       && __GLIBC_USE (IEC_60559_TYPES_EXT)
 #  define _Mdouble_ _Float128
 #  define __MATH_DECLARING_DOUBLE 0
@@ -1000,6 +1066,75 @@ iszero (__T __val)
 #  undef __REDIRFROM_X
 #  undef __REDIRTO_X
 # endif
+
+# if (__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !defined _LIBC)) \
+      && __GLIBC_USE (IEC_60559_TYPES_EXT)
+#  define _Mdouble_ _Float32x
+#  define __MATH_DECLARING_DOUBLE 0
+#  define __MATH_DECLARING_FLOATN 1
+#  define __REDIRFROM_X(function, reentrant) \
+  function ## f32x ## reentrant
+#  if __HAVE_DISTINCT_FLOAT32X
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f32x ## reentrant ## _finite
+#  else
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## reentrant ## _finite
+#  endif
+#  include <bits/math-finite.h>
+#  undef _Mdouble_
+#  undef __MATH_DECLARING_DOUBLE
+#  undef __MATH_DECLARING_FLOATN
+#  undef __REDIRFROM_X
+#  undef __REDIRTO_X
+# endif
+
+# if (__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !defined _LIBC)) \
+      && __GLIBC_USE (IEC_60559_TYPES_EXT)
+#  define _Mdouble_ _Float64x
+#  define __MATH_DECLARING_DOUBLE 0
+#  define __MATH_DECLARING_FLOATN 1
+#  define __REDIRFROM_X(function, reentrant) \
+  function ## f64x ## reentrant
+#  if __HAVE_DISTINCT_FLOAT64X
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f64x ## reentrant ## _finite
+#  elif __HAVE_FLOAT64X_LONG_DOUBLE
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## l ## reentrant ## _finite
+#  else
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f128 ## reentrant ## _finite
+#  endif
+#  include <bits/math-finite.h>
+#  undef _Mdouble_
+#  undef __MATH_DECLARING_DOUBLE
+#  undef __MATH_DECLARING_FLOATN
+#  undef __REDIRFROM_X
+#  undef __REDIRTO_X
+# endif
+
+# if (__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !defined _LIBC)) \
+      && __GLIBC_USE (IEC_60559_TYPES_EXT)
+#  define _Mdouble_ _Float128x
+#  define __MATH_DECLARING_DOUBLE 0
+#  define __MATH_DECLARING_FLOATN 1
+#  define __REDIRFROM_X(function, reentrant) \
+  function ## f128x ## reentrant
+#  if __HAVE_DISTINCT_FLOAT128X
+#   define __REDIRTO_X(function, reentrant) \
+   __ ## function ## f128x ## reentrant ## _finite
+#  else
+#   error "non-disinct _Float128x"
+#  endif
+#  include <bits/math-finite.h>
+#  undef _Mdouble_
+#  undef __MATH_DECLARING_DOUBLE
+#  undef __MATH_DECLARING_FLOATN
+#  undef __REDIRFROM_X
+#  undef __REDIRTO_X
+# endif
+
 #endif /* __FINITE_MATH_ONLY__ > 0.  */
 
 #if __GLIBC_USE (IEC_60559_BFP_EXT)
This page took 0.134855 seconds and 5 git commands to generate.