about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-06-04 14:32:17 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-06-22 11:09:45 -0300
commite80501a5c971c13f9bd72fe7b34a83aa36ec6541 (patch)
tree1fe929a28af22a2b07831094a1d8ad51adaec4e9
parentc013d5d3aae97c09e10c7b73a72af6086e6e1b98 (diff)
downloadglibc-e80501a5c971c13f9bd72fe7b34a83aa36ec6541.tar.gz
glibc-e80501a5c971c13f9bd72fe7b34a83aa36ec6541.tar.xz
glibc-e80501a5c971c13f9bd72fe7b34a83aa36ec6541.zip
math: Decompose math-use-builtins.h
Each symbol definitions are moved on a separated file and it
cover all symbol type definitions (float, double, long double,
and float128).

It allows to set support for architectures without the boiler
place of copying default values.

Checked with a build on the affected ABIs.
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-ceil.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-floor.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-fma.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-nearbyint.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-rint.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-round.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-sqrt.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins-trunc.h4
-rw-r--r--sysdeps/aarch64/fpu/math-use-builtins.h71
-rw-r--r--sysdeps/generic/math-use-builtins-ceil.h4
-rw-r--r--sysdeps/generic/math-use-builtins-copysign.h7
-rw-r--r--sysdeps/generic/math-use-builtins-floor.h4
-rw-r--r--sysdeps/generic/math-use-builtins-fma.h4
-rw-r--r--sysdeps/generic/math-use-builtins-nearbyint.h4
-rw-r--r--sysdeps/generic/math-use-builtins-rint.h4
-rw-r--r--sysdeps/generic/math-use-builtins-round.h4
-rw-r--r--sysdeps/generic/math-use-builtins-sqrt.h4
-rw-r--r--sysdeps/generic/math-use-builtins-trunc.h4
-rw-r--r--sysdeps/generic/math-use-builtins.h56
-rw-r--r--sysdeps/powerpc/fpu/math-use-builtins-fma.h9
-rw-r--r--sysdeps/powerpc/fpu/math-use-builtins.h77
-rw-r--r--sysdeps/s390/fpu/math-use-builtins-ceil.h15
-rw-r--r--sysdeps/s390/fpu/math-use-builtins-floor.h15
-rw-r--r--sysdeps/s390/fpu/math-use-builtins-nearbyint.h15
-rw-r--r--sysdeps/s390/fpu/math-use-builtins-rint.h15
-rw-r--r--sysdeps/s390/fpu/math-use-builtins-round.h15
-rw-r--r--sysdeps/s390/fpu/math-use-builtins-trunc.h15
-rw-r--r--sysdeps/s390/fpu/math-use-builtins.h119
28 files changed, 181 insertions, 312 deletions
diff --git a/sysdeps/aarch64/fpu/math-use-builtins-ceil.h b/sysdeps/aarch64/fpu/math-use-builtins-ceil.h
new file mode 100644
index 0000000000..17d6452e51
--- /dev/null
+++ b/sysdeps/aarch64/fpu/math-use-builtins-ceil.h
@@ -0,0 +1,4 @@
+#define USE_CEIL_BUILTIN 1
+#define USE_CEILF_BUILTIN 1
+#define USE_CEILL_BUILTIN 0
+#define USE_CEILF128_BUILTIN 0
diff --git a/sysdeps/aarch64/fpu/math-use-builtins-floor.h b/sysdeps/aarch64/fpu/math-use-builtins-floor.h
new file mode 100644
index 0000000000..553c0674af
--- /dev/null
+++ b/sysdeps/aarch64/fpu/math-use-builtins-floor.h
@@ -0,0 +1,4 @@
+#define USE_FLOOR_BUILTIN 1
+#define USE_FLOORF_BUILTIN 1
+#define USE_FLOORL_BUILTIN 0
+#define USE_FLOORF128_BUILTIN 0
diff --git a/sysdeps/aarch64/fpu/math-use-builtins-fma.h b/sysdeps/aarch64/fpu/math-use-builtins-fma.h
new file mode 100644
index 0000000000..eede75aa41
--- /dev/null
+++ b/sysdeps/aarch64/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/aarch64/fpu/math-use-builtins-nearbyint.h b/sysdeps/aarch64/fpu/math-use-builtins-nearbyint.h
new file mode 100644
index 0000000000..a2590c920f
--- /dev/null
+++ b/sysdeps/aarch64/fpu/math-use-builtins-nearbyint.h
@@ -0,0 +1,4 @@
+#define USE_NEARBYINT_BUILTIN 1
+#define USE_NEARBYINTF_BUILTIN 1
+#define USE_NEARBYINTL_BUILTIN 0
+#define USE_NEARBYINTF128_BUILTIN 0
diff --git a/sysdeps/aarch64/fpu/math-use-builtins-rint.h b/sysdeps/aarch64/fpu/math-use-builtins-rint.h
new file mode 100644
index 0000000000..45c3307692
--- /dev/null
+++ b/sysdeps/aarch64/fpu/math-use-builtins-rint.h
@@ -0,0 +1,4 @@
+#define USE_RINT_BUILTIN 1
+#define USE_RINTF_BUILTIN 1
+#define USE_RINTL_BUILTIN 0
+#define USE_RINTF128_BUILTIN 0
diff --git a/sysdeps/aarch64/fpu/math-use-builtins-round.h b/sysdeps/aarch64/fpu/math-use-builtins-round.h
new file mode 100644
index 0000000000..f6083d7d0a
--- /dev/null
+++ b/sysdeps/aarch64/fpu/math-use-builtins-round.h
@@ -0,0 +1,4 @@
+#define USE_ROUND_BUILTIN 1
+#define USE_ROUNDF_BUILTIN 1
+#define USE_ROUNDL_BUILTIN 0
+#define USE_ROUNDF128_BUILTIN 0
diff --git a/sysdeps/aarch64/fpu/math-use-builtins-sqrt.h b/sysdeps/aarch64/fpu/math-use-builtins-sqrt.h
new file mode 100644
index 0000000000..e94c915ba6
--- /dev/null
+++ b/sysdeps/aarch64/fpu/math-use-builtins-sqrt.h
@@ -0,0 +1,4 @@
+#define USE_SQRT_BUILTIN 1
+#define USE_SQRTF_BUILTIN 1
+#define USE_SQRTL_BUILTIN 0
+#define USE_SQRTF128_BUILTIN 0
diff --git a/sysdeps/aarch64/fpu/math-use-builtins-trunc.h b/sysdeps/aarch64/fpu/math-use-builtins-trunc.h
new file mode 100644
index 0000000000..4fc6da42b6
--- /dev/null
+++ b/sysdeps/aarch64/fpu/math-use-builtins-trunc.h
@@ -0,0 +1,4 @@
+#define USE_TRUNC_BUILTIN 1
+#define USE_TRUNCF_BUILTIN 1
+#define USE_TRUNCL_BUILTIN 0
+#define USE_TRUNCF128_BUILTIN 0
diff --git a/sysdeps/aarch64/fpu/math-use-builtins.h b/sysdeps/aarch64/fpu/math-use-builtins.h
deleted file mode 100644
index 50a1ba0db5..0000000000
--- a/sysdeps/aarch64/fpu/math-use-builtins.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Using math gcc builtins instead of generic implementation.  aarch64 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.
-
-   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/>.  */
-
-#ifndef MATH_USE_BUILTINS_H
-#define MATH_USE_BUILTINS_H	1
-
-#include <features.h> /* For __GNUC_PREREQ.  */
-
-/* Define these macros to 1 to use __builtin_xyz instead of the
-   generic implementation.  */
-#define USE_NEARBYINT_BUILTIN 1
-#define USE_NEARBYINTF_BUILTIN 1
-#define USE_NEARBYINTL_BUILTIN 0
-#define USE_NEARBYINTF128_BUILTIN 0
-
-#define USE_RINT_BUILTIN 1
-#define USE_RINTF_BUILTIN 1
-#define USE_RINTL_BUILTIN 0
-#define USE_RINTF128_BUILTIN 0
-
-#define USE_FLOOR_BUILTIN 1
-#define USE_FLOORF_BUILTIN 1
-#define USE_FLOORL_BUILTIN 0
-#define USE_FLOORF128_BUILTIN 0
-
-#define USE_CEIL_BUILTIN 1
-#define USE_CEILF_BUILTIN 1
-#define USE_CEILL_BUILTIN 0
-#define USE_CEILF128_BUILTIN 0
-
-#define USE_TRUNC_BUILTIN 1
-#define USE_TRUNCF_BUILTIN 1
-#define USE_TRUNCL_BUILTIN 0
-#define USE_TRUNCF128_BUILTIN 0
-
-#define USE_ROUND_BUILTIN 1
-#define USE_ROUNDF_BUILTIN 1
-#define USE_ROUNDL_BUILTIN 0
-#define USE_ROUNDF128_BUILTIN 0
-
-#define USE_COPYSIGNL_BUILTIN 1
-#if __GNUC_PREREQ (7, 0)
-# define USE_COPYSIGNF128_BUILTIN 1
-#else
-# define USE_COPYSIGNF128_BUILTIN 0
-#endif
-
-#define USE_SQRT_BUILTIN 1
-#define USE_SQRTF_BUILTIN 1
-
-#define USE_FMA_BUILTIN 1
-#define USE_FMAF_BUILTIN 1
-#define USE_FMAL_BUILTIN 0
-#define USE_FMAF128_BUILTIN 0
-
-#endif
diff --git a/sysdeps/generic/math-use-builtins-ceil.h b/sysdeps/generic/math-use-builtins-ceil.h
new file mode 100644
index 0000000000..0698033493
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-ceil.h
@@ -0,0 +1,4 @@
+#define USE_CEIL_BUILTIN 0
+#define USE_CEILF_BUILTIN 0
+#define USE_CEILL_BUILTIN 0
+#define USE_CEILF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins-copysign.h b/sysdeps/generic/math-use-builtins-copysign.h
new file mode 100644
index 0000000000..b774931f43
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-copysign.h
@@ -0,0 +1,7 @@
+/* Generic implementations for float and double always use the builtin.  */
+#define USE_COPYSIGNL_BUILTIN 1
+#if __GNUC_PREREQ (7, 0)
+# define USE_COPYSIGNF128_BUILTIN 1
+#else
+# define USE_COPYSIGNF128_BUILTIN 0
+#endif
diff --git a/sysdeps/generic/math-use-builtins-floor.h b/sysdeps/generic/math-use-builtins-floor.h
new file mode 100644
index 0000000000..b0858d9eda
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-floor.h
@@ -0,0 +1,4 @@
+#define USE_FLOOR_BUILTIN 0
+#define USE_FLOORF_BUILTIN 0
+#define USE_FLOORL_BUILTIN 0
+#define USE_FLOORF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins-fma.h b/sysdeps/generic/math-use-builtins-fma.h
new file mode 100644
index 0000000000..51dcb6a240
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-fma.h
@@ -0,0 +1,4 @@
+#define USE_FMA_BUILTIN 0
+#define USE_FMAF_BUILTIN 0
+#define USE_FMAL_BUILTIN 0
+#define USE_FMAF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins-nearbyint.h b/sysdeps/generic/math-use-builtins-nearbyint.h
new file mode 100644
index 0000000000..ab453532b0
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-nearbyint.h
@@ -0,0 +1,4 @@
+#define USE_NEARBYINT_BUILTIN 0
+#define USE_NEARBYINTF_BUILTIN 0
+#define USE_NEARBYINTL_BUILTIN 0
+#define USE_NEARBYINTF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins-rint.h b/sysdeps/generic/math-use-builtins-rint.h
new file mode 100644
index 0000000000..24793757f6
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-rint.h
@@ -0,0 +1,4 @@
+#define USE_RINT_BUILTIN 0
+#define USE_RINTF_BUILTIN 0
+#define USE_RINTL_BUILTIN 0
+#define USE_RINTF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins-round.h b/sysdeps/generic/math-use-builtins-round.h
new file mode 100644
index 0000000000..de2dce1f5b
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-round.h
@@ -0,0 +1,4 @@
+#define USE_ROUND_BUILTIN 0
+#define USE_ROUNDF_BUILTIN 0
+#define USE_ROUNDL_BUILTIN 0
+#define USE_ROUNDF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins-sqrt.h b/sysdeps/generic/math-use-builtins-sqrt.h
new file mode 100644
index 0000000000..7b4fed380f
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-sqrt.h
@@ -0,0 +1,4 @@
+#define USE_SQRT_BUILTIN 0
+#define USE_SQRTF_BUILTIN 0
+#define USE_SQRTL_BUILTIN 0
+#define USE_SQRTF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins-trunc.h b/sysdeps/generic/math-use-builtins-trunc.h
new file mode 100644
index 0000000000..59e6d97d13
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins-trunc.h
@@ -0,0 +1,4 @@
+#define USE_TRUNC_BUILTIN 0
+#define USE_TRUNCF_BUILTIN 0
+#define USE_TRUNCL_BUILTIN 0
+#define USE_TRUNCF128_BUILTIN 0
diff --git a/sysdeps/generic/math-use-builtins.h b/sysdeps/generic/math-use-builtins.h
index cf25ed8a21..78d6146762 100644
--- a/sysdeps/generic/math-use-builtins.h
+++ b/sysdeps/generic/math-use-builtins.h
@@ -23,49 +23,15 @@
 
 /* Define these macros to 1 to use __builtin_xyz instead of the
    generic implementation.  */
-#define USE_NEARBYINT_BUILTIN 0
-#define USE_NEARBYINTF_BUILTIN 0
-#define USE_NEARBYINTL_BUILTIN 0
-#define USE_NEARBYINTF128_BUILTIN 0
 
-#define USE_RINT_BUILTIN 0
-#define USE_RINTF_BUILTIN 0
-#define USE_RINTL_BUILTIN 0
-#define USE_RINTF128_BUILTIN 0
-
-#define USE_FLOOR_BUILTIN 0
-#define USE_FLOORF_BUILTIN 0
-#define USE_FLOORL_BUILTIN 0
-#define USE_FLOORF128_BUILTIN 0
-
-#define USE_CEIL_BUILTIN 0
-#define USE_CEILF_BUILTIN 0
-#define USE_CEILL_BUILTIN 0
-#define USE_CEILF128_BUILTIN 0
-
-#define USE_TRUNC_BUILTIN 0
-#define USE_TRUNCF_BUILTIN 0
-#define USE_TRUNCL_BUILTIN 0
-#define USE_TRUNCF128_BUILTIN 0
-
-#define USE_ROUND_BUILTIN 0
-#define USE_ROUNDF_BUILTIN 0
-#define USE_ROUNDL_BUILTIN 0
-#define USE_ROUNDF128_BUILTIN 0
-
-#define USE_COPYSIGNL_BUILTIN 1
-#if __GNUC_PREREQ (7, 0)
-# define USE_COPYSIGNF128_BUILTIN 1
-#else
-# define USE_COPYSIGNF128_BUILTIN 0
-#endif
-
-#define USE_SQRT_BUILTIN 0
-#define USE_SQRTF_BUILTIN 0
-
-#define USE_FMA_BUILTIN 0
-#define USE_FMAF_BUILTIN 0
-#define USE_FMAL_BUILTIN 0
-#define USE_FMAF128_BUILTIN 0
-
-#endif /* math-use-builtins.h */
+#include <math-use-builtins-nearbyint.h>
+#include <math-use-builtins-rint.h>
+#include <math-use-builtins-floor.h>
+#include <math-use-builtins-ceil.h>
+#include <math-use-builtins-trunc.h>
+#include <math-use-builtins-round.h>
+#include <math-use-builtins-copysign.h>
+#include <math-use-builtins-sqrt.h>
+#include <math-use-builtins-fma.h>
+
+#endif /* MATH_USE_BUILTINS_H  */
diff --git a/sysdeps/powerpc/fpu/math-use-builtins-fma.h b/sysdeps/powerpc/fpu/math-use-builtins-fma.h
new file mode 100644
index 0000000000..5652e55185
--- /dev/null
+++ b/sysdeps/powerpc/fpu/math-use-builtins-fma.h
@@ -0,0 +1,9 @@
+#define USE_FMA_BUILTIN 1
+#define USE_FMAF_BUILTIN 1
+#define USE_FMAL_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
diff --git a/sysdeps/powerpc/fpu/math-use-builtins.h b/sysdeps/powerpc/fpu/math-use-builtins.h
deleted file mode 100644
index 72e28ec9cc..0000000000
--- a/sysdeps/powerpc/fpu/math-use-builtins.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Using math gcc builtins instead of generic implementation.  PowerPC version.
-   Copyright (C) 2019-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.
-
-   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/>.  */
-
-#ifndef MATH_USE_BUILTINS_H
-#define MATH_USE_BUILTINS_H	1
-
-#include <features.h> /* For __GNUC_PREREQ.  */
-
-/* Define these macros to 1 to use __builtin_xyz instead of the
-   generic implementation.  */
-#define USE_NEARBYINT_BUILTIN 0
-#define USE_NEARBYINTF_BUILTIN 0
-#define USE_NEARBYINTL_BUILTIN 0
-#define USE_NEARBYINTF128_BUILTIN 0
-
-#define USE_RINT_BUILTIN 0
-#define USE_RINTF_BUILTIN 0
-#define USE_RINTL_BUILTIN 0
-#define USE_RINTF128_BUILTIN 0
-
-#define USE_FLOOR_BUILTIN 0
-#define USE_FLOORF_BUILTIN 0
-#define USE_FLOORL_BUILTIN 0
-#define USE_FLOORF128_BUILTIN 0
-
-#define USE_CEIL_BUILTIN 0
-#define USE_CEILF_BUILTIN 0
-#define USE_CEILL_BUILTIN 0
-#define USE_CEILF128_BUILTIN 0
-
-#define USE_TRUNC_BUILTIN 0
-#define USE_TRUNCF_BUILTIN 0
-#define USE_TRUNCL_BUILTIN 0
-#define USE_TRUNCF128_BUILTIN 0
-
-#define USE_ROUND_BUILTIN 0
-#define USE_ROUNDF_BUILTIN 0
-#define USE_ROUNDL_BUILTIN 0
-#define USE_ROUNDF128_BUILTIN 0
-
-#define USE_COPYSIGNL_BUILTIN 1
-#if __GNUC_PREREQ (7, 0)
-# define USE_COPYSIGNF128_BUILTIN 1
-#else
-# define USE_COPYSIGNF128_BUILTIN 0
-#endif
-
-#define USE_SQRT_BUILTIN 0
-#define USE_SQRTF_BUILTIN 0
-
-#define USE_FMA_BUILTIN 1
-#define USE_FMAF_BUILTIN 1
-#define USE_FMAL_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/s390/fpu/math-use-builtins-ceil.h b/sysdeps/s390/fpu/math-use-builtins-ceil.h
new file mode 100644
index 0000000000..bec147a17f
--- /dev/null
+++ b/sysdeps/s390/fpu/math-use-builtins-ceil.h
@@ -0,0 +1,15 @@
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define USE_CEIL_BUILTIN 1
+# define USE_CEILF_BUILTIN 1
+# define USE_CEILL_BUILTIN 1
+# if __GNUC_PREREQ (8, 0)
+#  define USE_CEILF128_BUILTIN 1
+# else
+#  define USE_CEILF128_BUILTIN 0
+# endif
+#else
+# define USE_CEIL_BUILTIN 0
+# define USE_CEILF_BUILTIN 0
+# define USE_CEILL_BUILTIN 0
+# define USE_CEILF128_BUILTIN 0
+#endif
diff --git a/sysdeps/s390/fpu/math-use-builtins-floor.h b/sysdeps/s390/fpu/math-use-builtins-floor.h
new file mode 100644
index 0000000000..6c034e03bb
--- /dev/null
+++ b/sysdeps/s390/fpu/math-use-builtins-floor.h
@@ -0,0 +1,15 @@
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define USE_FLOOR_BUILTIN 1
+# define USE_FLOORF_BUILTIN 1
+# define USE_FLOORL_BUILTIN 1
+# if __GNUC_PREREQ (8, 0)
+#  define USE_FLOORF128_BUILTIN 1
+# else
+#  define USE_FLOORF128_BUILTIN 0
+# endif
+#else
+# define USE_FLOOR_BUILTIN 0
+# define USE_FLOORF_BUILTIN 0
+# define USE_FLOORL_BUILTIN 0
+# define USE_FLOORF128_BUILTIN 0
+#endif
diff --git a/sysdeps/s390/fpu/math-use-builtins-nearbyint.h b/sysdeps/s390/fpu/math-use-builtins-nearbyint.h
new file mode 100644
index 0000000000..2f3936e362
--- /dev/null
+++ b/sysdeps/s390/fpu/math-use-builtins-nearbyint.h
@@ -0,0 +1,15 @@
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define USE_NEARBYINT_BUILTIN 1
+# define USE_NEARBYINTF_BUILTIN 1
+# define USE_NEARBYINTL_BUILTIN 1
+# if __GNUC_PREREQ (8, 0)
+#  define USE_NEARBYINTF128_BUILTIN 1
+# else
+#  define USE_NEARBYINTF128_BUILTIN 0
+# endif
+#else
+# define USE_NEARBYINT_BUILTIN 0
+# define USE_NEARBYINTF_BUILTIN 0
+# define USE_NEARBYINTL_BUILTIN 0
+# define USE_NEARBYINTF128_BUILTIN 0
+#endif
diff --git a/sysdeps/s390/fpu/math-use-builtins-rint.h b/sysdeps/s390/fpu/math-use-builtins-rint.h
new file mode 100644
index 0000000000..2ba16eeaec
--- /dev/null
+++ b/sysdeps/s390/fpu/math-use-builtins-rint.h
@@ -0,0 +1,15 @@
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define USE_RINT_BUILTIN 1
+# define USE_RINTF_BUILTIN 1
+# define USE_RINTL_BUILTIN 1
+# if __GNUC_PREREQ (8, 0)
+#  define USE_RINTF128_BUILTIN 1
+# else
+#  define USE_RINTF128_BUILTIN 0
+# endif
+#else
+# define USE_RINT_BUILTIN 0
+# define USE_RINTF_BUILTIN 0
+# define USE_RINTL_BUILTIN 0
+# define USE_RINTF128_BUILTIN 0
+#endif
diff --git a/sysdeps/s390/fpu/math-use-builtins-round.h b/sysdeps/s390/fpu/math-use-builtins-round.h
new file mode 100644
index 0000000000..d92daa9654
--- /dev/null
+++ b/sysdeps/s390/fpu/math-use-builtins-round.h
@@ -0,0 +1,15 @@
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define USE_ROUND_BUILTIN 1
+# define USE_ROUNDF_BUILTIN 1
+# define USE_ROUNDL_BUILTIN 1
+# if __GNUC_PREREQ (8, 0)
+#  define USE_ROUNDF128_BUILTIN 1
+# else
+#  define USE_ROUNDF128_BUILTIN 0
+# endif
+#else
+# define USE_ROUND_BUILTIN 0
+# define USE_ROUNDF_BUILTIN 0
+# define USE_ROUNDL_BUILTIN 0
+# define USE_ROUNDF128_BUILTIN 0
+#endif
diff --git a/sysdeps/s390/fpu/math-use-builtins-trunc.h b/sysdeps/s390/fpu/math-use-builtins-trunc.h
new file mode 100644
index 0000000000..9b5b02de41
--- /dev/null
+++ b/sysdeps/s390/fpu/math-use-builtins-trunc.h
@@ -0,0 +1,15 @@
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define USE_TRUNC_BUILTIN 1
+# define USE_TRUNCF_BUILTIN 1
+# define USE_TRUNCL_BUILTIN 1
+# if __GNUC_PREREQ (8, 0)
+#  define USE_TRUNCF128_BUILTIN 1
+# else
+#  define USE_TRUNCF128_BUILTIN 0
+# endif
+#else
+# define USE_TRUNC_BUILTIN 0
+# define USE_TRUNCF_BUILTIN 0
+# define USE_TRUNCL_BUILTIN 0
+# define USE_TRUNCF128_BUILTIN 0
+#endif
diff --git a/sysdeps/s390/fpu/math-use-builtins.h b/sysdeps/s390/fpu/math-use-builtins.h
deleted file mode 100644
index 3a80f86b2e..0000000000
--- a/sysdeps/s390/fpu/math-use-builtins.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Using math gcc builtins instead of generic implementation.  s390/s390x version.
-   Copyright (C) 2019-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.
-
-   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/>.  */
-
-#ifndef MATH_USE_BUILTINS_S390_H
-#define MATH_USE_BUILTINS_S390_H	1
-
-#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
-
-# include <features.h> /* For __GNUC_PREREQ.  */
-
-/* GCC emits the z196 zarch "load fp integer" instructions for these
-   builtins if build with at least --march=z196 -mzarch.  Otherwise a
-   function call to libc is emitted.  */
-# define USE_NEARBYINT_BUILTIN 1
-# define USE_NEARBYINTF_BUILTIN 1
-# define USE_NEARBYINTL_BUILTIN 1
-
-# define USE_RINT_BUILTIN 1
-# define USE_RINTF_BUILTIN 1
-# define USE_RINTL_BUILTIN 1
-
-# define USE_FLOOR_BUILTIN 1
-# define USE_FLOORF_BUILTIN 1
-# define USE_FLOORL_BUILTIN 1
-
-# define USE_CEIL_BUILTIN 1
-# define USE_CEILF_BUILTIN 1
-# define USE_CEILL_BUILTIN 1
-
-# define USE_TRUNC_BUILTIN 1
-# define USE_TRUNCF_BUILTIN 1
-# define USE_TRUNCL_BUILTIN 1
-
-# define USE_ROUND_BUILTIN 1
-# define USE_ROUNDF_BUILTIN 1
-# define USE_ROUNDL_BUILTIN 1
-
-# if __GNUC_PREREQ (8, 0)
-#  define USE_NEARBYINTF128_BUILTIN 1
-#  define USE_RINTF128_BUILTIN 1
-#  define USE_FLOORF128_BUILTIN 1
-#  define USE_CEILF128_BUILTIN 1
-#  define USE_TRUNCF128_BUILTIN 1
-#  define USE_ROUNDF128_BUILTIN 1
-# else
-#  define USE_NEARBYINTF128_BUILTIN 0
-#  define USE_RINTF128_BUILTIN 0
-#  define USE_FLOORF128_BUILTIN 0
-#  define USE_CEILF128_BUILTIN 0
-#  define USE_TRUNCF128_BUILTIN 0
-#  define USE_ROUNDF128_BUILTIN 0
-# endif
-
-#else
-
-/* Disable the builtins if we do not have the z196 zarch instructions.  */
-# define USE_NEARBYINT_BUILTIN 0
-# define USE_NEARBYINTF_BUILTIN 0
-# define USE_NEARBYINTL_BUILTIN 0
-# define USE_NEARBYINTF128_BUILTIN 0
-
-# define USE_RINT_BUILTIN 0
-# define USE_RINTF_BUILTIN 0
-# define USE_RINTL_BUILTIN 0
-# define USE_RINTF128_BUILTIN 0
-
-# define USE_FLOOR_BUILTIN 0
-# define USE_FLOORF_BUILTIN 0
-# define USE_FLOORL_BUILTIN 0
-# define USE_FLOORF128_BUILTIN 0
-
-# define USE_CEIL_BUILTIN 0
-# define USE_CEILF_BUILTIN 0
-# define USE_CEILL_BUILTIN 0
-# define USE_CEILF128_BUILTIN 0
-
-# define USE_TRUNC_BUILTIN 0
-# define USE_TRUNCF_BUILTIN 0
-# define USE_TRUNCL_BUILTIN 0
-# define USE_TRUNCF128_BUILTIN 0
-
-# define USE_ROUND_BUILTIN 0
-# define USE_ROUNDF_BUILTIN 0
-# define USE_ROUNDL_BUILTIN 0
-# define USE_ROUNDF128_BUILTIN 0
-
-#endif /* ! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT  */
-
-#define USE_COPYSIGNL_BUILTIN 1
-#if __GNUC_PREREQ (7, 0)
-# define USE_COPYSIGNF128_BUILTIN 1
-#else
-# define USE_COPYSIGNF128_BUILTIN 0
-#endif
-
-#define USE_SQRT_BUILTIN 0
-#define USE_SQRTF_BUILTIN 0
-
-#define USE_FMA_BUILTIN 0
-#define USE_FMAF_BUILTIN 0
-#define USE_FMAL_BUILTIN 0
-#define USE_FMAF128_BUILTIN 0
-
-#endif /* math-use-builtins.h */