summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--sysdeps/powerpc/fpu/math-use-builtins.h8
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-power9.c4
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/fpu/s_fmaf128.c36
3 files changed, 10 insertions, 38 deletions
diff --git a/sysdeps/powerpc/fpu/math-use-builtins.h b/sysdeps/powerpc/fpu/math-use-builtins.h
index 957216a191..72e28ec9cc 100644
--- a/sysdeps/powerpc/fpu/math-use-builtins.h
+++ b/sysdeps/powerpc/fpu/math-use-builtins.h
@@ -66,6 +66,12 @@
 #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
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-power9.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-power9.c
index 8df77ceade..49aeb3a8f4 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-power9.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/s_fmaf128-power9.c
@@ -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
index f02e810fb9..0000000000
--- a/sysdeps/powerpc/powerpc64/le/power9/fpu/s_fmaf128.c
+++ /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)