]> sourceware.org Git - glibc.git/commitdiff
powerpc64le: use common fmaf128 implementation
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Wed, 3 Jun 2020 18:57:20 +0000 (13:57 -0500)
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Fri, 5 Jun 2020 20:29:44 +0000 (15:29 -0500)
This defines the macro such that it should behave best on all
supported powerpc targets.  Likewise, this allows us to remove the
ppc64le specific s_fmaf128.c.

I have verified powerpc64le multiarch and powerpc64le power9
no-multiarch builds continue to generate optimize fmaf128.

sysdeps/powerpc/fpu/math-use-builtins.h
sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-power9.c
sysdeps/powerpc/powerpc64/le/power9/fpu/s_fmaf128.c [deleted file]

index 957216a191d985e70e2cf503d44a27d73bd5c3e4..72e28ec9ccd2dede3e2a29ded64b10304e2f3bf5 100644 (file)
 #define USE_FMA_BUILTIN 1
 #define USE_FMAF_BUILTIN 1
 #define USE_FMAL_BUILTIN 0
-#define USE_FMAF128_BUILTIN 0
+
+/* This is not available for P8 or BE targets.  */
+#ifdef __FP_FAST_FMAF128
+# define USE_FMAF128_BUILTIN 1
+#else
+# define USE_FMAF128_BUILTIN 0
+#endif
 
 #endif
index 8df77ceade7dc721ae0097ebe34cf078f2d9bbfa..49aeb3a8f417b7145add1316b94dc8e6adf9ec9c 100644 (file)
@@ -20,7 +20,9 @@
 
 #undef libm_alias_float128
 #define libm_alias_float128(a, b)
+#undef strong_alias
+#define strong_alias(a, b)
 
 #define __fmaf128 __fmaf128_power9
 
-#include <sysdeps/powerpc/powerpc64/le/power9/fpu/s_fmaf128.c>
+#include <sysdeps/ieee754/float128/s_fmaf128.c>
diff --git a/sysdeps/powerpc/powerpc64/le/power9/fpu/s_fmaf128.c b/sysdeps/powerpc/powerpc64/le/power9/fpu/s_fmaf128.c
deleted file mode 100644 (file)
index f02e810..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Compute x * y + z as a ternary operation for _Float128.  POWER9 version.
-   Copyright (C) 2020 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.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file into
-   combinations with other programs, and to distribute those
-   combinations without any restriction coming from the use of this
-   file.  (The Lesser General Public License restrictions do apply in
-   other respects; for example, they cover modification of the file,
-   and distribution when not linked into a combine executable.)
-
-   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/>.  */
-
-#include <libm-alias-float128.h>
-
-__float128
-__fmaf128 (__float128 x, __float128 y, __float128 z)
-{
-  return x * y + z;
-}
-
-libm_alias_float128 (__fma, fma)
This page took 0.038926 seconds and 5 git commands to generate.