From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com>
To: libc-alpha@sourceware.org
Subject: [PATCH 5/6] ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions
Date: Mon, 3 Feb 2020 15:10:43 -0600 [thread overview]
Message-ID: <c9343ff90ac419c23914592dccbe9a8d59d72312.1580757509.git.murphyp@linux.vnet.ibm.com> (raw)
In-Reply-To: <cover.1580757509.git.murphyp@linux.vnet.ibm.com>
From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Move the narrow math aliasing macros into a new sysdep header file
math-narrow-alias-float128.h. Then, provide an override header
to supply the necessary changes to supply the *ieee128 aliases of
these symbols.
This adds ieee128 aliases for faddl, fdivl, fmull, fsubl, daddl, ddivl,
dmull, dsubl.
---
math/math-narrow.h | 15 +-------
sysdeps/generic/math-narrow-alias-float128.h | 32 +++++++++++++++++
sysdeps/ieee754/ldbl-128ibm-compat/Versions | 8 +++++
.../math-narrow-alias-float128.h | 34 +++++++++++++++++++
4 files changed, 75 insertions(+), 14 deletions(-)
create mode 100644 sysdeps/generic/math-narrow-alias-float128.h
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h
diff --git a/math/math-narrow.h b/math/math-narrow.h
index ec22913710..d8092c287e 100644
--- a/math/math-narrow.h
+++ b/math/math-narrow.h
@@ -352,19 +352,6 @@
weak_alias (__f64 ## func ## f128, f64 ## func ## f128) \
weak_alias (__f64 ## func ## f128, f32x ## func ## f128)
-#if __HAVE_FLOAT64X_LONG_DOUBLE
-# define libm_alias_float32_float128(func) \
- libm_alias_float32_float128_main (func)
-# define libm_alias_float64_float128(func) \
- libm_alias_float64_float128_main (func)
-#else
-# define libm_alias_float32_float128(func) \
- libm_alias_float32_float128_main (func) \
- weak_alias (__f32 ## func ## f128, f32 ## func ## f64x)
-# define libm_alias_float64_float128(func) \
- libm_alias_float64_float128_main (func) \
- weak_alias (__f64 ## func ## f128, f64 ## func ## f64x) \
- weak_alias (__f64 ## func ## f128, f32x ## func ## f64x)
-#endif
+#include <math-narrow-alias-float128.h>
#endif /* math-narrow.h. */
diff --git a/sysdeps/generic/math-narrow-alias-float128.h b/sysdeps/generic/math-narrow-alias-float128.h
new file mode 100644
index 0000000000..4788708c78
--- /dev/null
+++ b/sysdeps/generic/math-narrow-alias-float128.h
@@ -0,0 +1,32 @@
+/* Helper macros for functions returning a narrower type. F128-specific.
+ Copyright (C) 2018 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if __HAVE_FLOAT64X_LONG_DOUBLE
+# define libm_alias_float32_float128(func) \
+ libm_alias_float32_float128_main (func)
+# define libm_alias_float64_float128(func) \
+ libm_alias_float64_float128_main (func)
+#else
+# define libm_alias_float32_float128(func) \
+ libm_alias_float32_float128_main (func) \
+ weak_alias (__f32 ## func ## f128, f32 ## func ## f64x)
+# define libm_alias_float64_float128(func) \
+ libm_alias_float64_float128_main (func) \
+ weak_alias (__f64 ## func ## f128, f64 ## func ## f64x) \
+ weak_alias (__f64 ## func ## f128, f32x ## func ## f64x)
+#endif
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
index b4609c99f7..83a0a36e62 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
@@ -47,6 +47,14 @@ libm {
__exp2ieee128;
__expieee128;
__expm1ieee128;
+ __f32addieee128;
+ __f32divieee128;
+ __f32mulieee128;
+ __f32subieee128;
+ __f64addieee128;
+ __f64divieee128;
+ __f64mulieee128;
+ __f64subieee128;
__fabsieee128;
__fdimieee128;
__floorieee128;
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h b/sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h
new file mode 100644
index 0000000000..5353b539d7
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h
@@ -0,0 +1,34 @@
+/* Helper macros for functions returning a narrower type. F128-specific.
+ Copyright (C) 2018 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if __HAVE_FLOAT64X_LONG_DOUBLE
+# define libm_alias_float32_float128(func) \
+ libm_alias_float32_float128_main (func)
+# define libm_alias_float64_float128(func) \
+ libm_alias_float64_float128_main (func)
+#else
+# define libm_alias_float32_float128(func) \
+ libm_alias_float32_float128_main (func) \
+ weak_alias (__f32 ## func ## f128, f32 ## func ## f64x) \
+ weak_alias (__f32 ## func ## f128, __ ## f32 ## func ## ieee128)
+# define libm_alias_float64_float128(func) \
+ libm_alias_float64_float128_main (func) \
+ weak_alias (__f64 ## func ## f128, f64 ## func ## f64x) \
+ weak_alias (__f64 ## func ## f128, f32x ## func ## f64x) \
+ weak_alias (__f64 ## func ## f128, __ ## f64 ## func ## ieee128)
+#endif
--
2.21.1
next prev parent reply other threads:[~2020-02-03 21:11 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-03 21:10 [PATCH 0/6] long double to _Float128 redirecting support Paul E. Murphy
2020-02-03 21:10 ` [PATCH 1/6] Prepare redirections for IEEE long double on powerpc64le Paul E. Murphy
2020-02-10 21:32 ` Paul E Murphy
2020-02-17 14:34 ` Paul E Murphy
2020-02-18 14:27 ` Paul E Murphy
2020-02-11 18:25 ` Tulio Magno Quites Machado Filho
2020-02-03 21:10 ` [PATCH 2/6] Undefine redirections after long double definition on __LDBL_COMPAT [BZ #23294] Paul E. Murphy
2020-02-17 15:08 ` Paul E Murphy
2020-02-18 15:15 ` Paul E Murphy
2020-02-21 14:31 ` Paul E Murphy
2020-02-03 21:10 ` [PATCH 3/6] ldbl-128ibm-compat: Redirect long double functions to f128/ieee128 functions Paul E. Murphy
2020-02-24 14:58 ` Paul E Murphy
2020-02-28 14:55 ` Paul E Murphy
2020-02-03 21:10 ` [PATCH 4/6] ldbl-128ibm-compat: Redirect complex math functions Paul E. Murphy
2020-02-11 18:36 ` Tulio Magno Quites Machado Filho
2020-02-28 14:59 ` Paul E Murphy
2020-02-03 21:10 ` Paul E. Murphy [this message]
2020-02-18 22:23 ` [PATCH 5/6] ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions Paul E Murphy
2020-02-21 14:29 ` Paul E Murphy
2020-02-03 21:10 ` [PATCH 6/6] Add a generic scalb implementation Paul E. Murphy
2020-02-11 20:20 ` Paul E Murphy
2020-02-12 1:21 ` Joseph Myers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c9343ff90ac419c23914592dccbe9a8d59d72312.1580757509.git.murphyp@linux.vnet.ibm.com \
--to=murphyp@linux.vnet.ibm.com \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).