unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
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


  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).