diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-06-04 17:22:20 +0000 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-06-22 11:09:49 -0300 |
commit | a2e833667d5de877fbc0c5a221a72c68abaa1203 (patch) | |
tree | ad5c4aa39540da7ad45533a64f743fdaa0f1712d | |
parent | 271afad8f4051c81401e4d2649f35c51345b4a1b (diff) | |
download | glibc-a2e833667d5de877fbc0c5a221a72c68abaa1203.tar.gz glibc-a2e833667d5de877fbc0c5a221a72c68abaa1203.tar.xz glibc-a2e833667d5de877fbc0c5a221a72c68abaa1203.zip |
s390x: Use fma{f} builtin
Checked on s390x-linux-gnu.
-rw-r--r-- | sysdeps/s390/fpu/math-use-builtins-fma.h | 4 | ||||
-rw-r--r-- | sysdeps/s390/fpu/s_fma.c | 32 | ||||
-rw-r--r-- | sysdeps/s390/fpu/s_fmaf.c | 32 |
3 files changed, 4 insertions, 64 deletions
diff --git a/sysdeps/s390/fpu/math-use-builtins-fma.h b/sysdeps/s390/fpu/math-use-builtins-fma.h new file mode 100644 index 0000000000..eede75aa41 --- /dev/null +++ b/sysdeps/s390/fpu/math-use-builtins-fma.h @@ -0,0 +1,4 @@ +#define USE_FMA_BUILTIN 1 +#define USE_FMAF_BUILTIN 1 +#define USE_FMAL_BUILTIN 0 +#define USE_FMAF128_BUILTIN 0 diff --git a/sysdeps/s390/fpu/s_fma.c b/sysdeps/s390/fpu/s_fma.c deleted file mode 100644 index ae924d05e8..0000000000 --- a/sysdeps/s390/fpu/s_fma.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Compute x * y + z as ternary operation. S/390 version. - Copyright (C) 2010-2020 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>, 2010. - - 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 - <https://www.gnu.org/licenses/>. */ - -#include <math.h> -#include <libm-alias-double.h> - -double -__fma (double x, double y, double z) -{ - double r; - __asm__ ("madbr %0,%1,%2" : "=f" (r) : "%f" (x), "fR" (y), "0" (z)); - return r; -} -#ifndef __fma -libm_alias_double (__fma, fma) -#endif diff --git a/sysdeps/s390/fpu/s_fmaf.c b/sysdeps/s390/fpu/s_fmaf.c deleted file mode 100644 index 9e5bc533b8..0000000000 --- a/sysdeps/s390/fpu/s_fmaf.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Compute x * y + z as ternary operation. S/390 version. - Copyright (C) 2010-2020 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek <jakub@redhat.com>, 2010. - - 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 - <https://www.gnu.org/licenses/>. */ - -#include <math.h> -#include <libm-alias-float.h> - -float -__fmaf (float x, float y, float z) -{ - float r; - __asm__ ("maebr %0,%1,%2" : "=f" (r) : "%f" (x), "fR" (y), "0" (z)); - return r; -} -#ifndef __fmaf -libm_alias_float (__fma, fma) -#endif |