powerpc64le: use common fmaf128 implementation

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.
This commit is contained in:
Paul E. Murphy 2020-06-03 13:57:20 -05:00
parent e52434a2e4
commit 6ef4227509
3 changed files with 10 additions and 38 deletions

View File

@ -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

View 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>

View File

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