]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Define CMPLX macros for more _FloatN, _FloatNx types.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 31 Oct 2017 17:04:30 +0000 (17:04 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 31 Oct 2017 17:04:30 +0000 (17:04 +0000)
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch defines CMPLX* macros for all such types, as
already done for _Float128.

Tested for x86_64.

* math/complex.h
[__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF16):
New macro.
[__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF32):
Likewise.
[__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF64):
Likewise.
[__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
(CMPLXF32X): Likewise.
[__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
(CMPLXF64X): Likewise.
[__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
(CMPLXF128X): Likewise.

ChangeLog
math/complex.h

index 52ee8ee2f19e9ea36635260bb1544d5b8ec21bce..9c03aba8efe2eab8c2288c409844c1b74adfab3f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2017-10-31  Joseph Myers  <joseph@codesourcery.com>
 
+       * math/complex.h
+       [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF16):
+       New macro.
+       [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF32):
+       Likewise.
+       [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF64):
+       Likewise.
+       [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+       (CMPLXF32X): Likewise.
+       [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+       (CMPLXF64X): Likewise.
+       [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+       (CMPLXF128X): Likewise.
+
        * math/math.h
        [__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32]
        (__MATH_EVAL_FMT2): Define to add 0.0f.
index 9a6cc3e799b00719c9364799a4216b25f799914f..43b4c7dbc35d21837abfd49481e491dec5092a57 100644 (file)
@@ -59,10 +59,35 @@ __BEGIN_DECLS
 # define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
 #endif
 
+#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF16(x, y) __builtin_complex ((_Float16) (x), (_Float16) (y))
+#endif
+
+#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF32(x, y) __builtin_complex ((_Float32) (x), (_Float32) (y))
+#endif
+
+#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF64(x, y) __builtin_complex ((_Float64) (x), (_Float64) (y))
+#endif
+
 #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
 # define CMPLXF128(x, y) __builtin_complex ((_Float128) (x), (_Float128) (y))
 #endif
 
+#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF32X(x, y) __builtin_complex ((_Float32x) (x), (_Float32x) (y))
+#endif
+
+#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF64X(x, y) __builtin_complex ((_Float64x) (x), (_Float64x) (y))
+#endif
+
+#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
+# define CMPLXF128X(x, y)                                      \
+  __builtin_complex ((_Float128x) (x), (_Float128x) (y))
+#endif
+
 /* The file <bits/cmathcalls.h> contains the prototypes for all the
    actual math functions.  These macros are used for those prototypes,
    so we can easily declare each function as both `name' and `__name',