aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-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 0000000..17d6452
--- /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 0000000..553c067
--- /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 0000000..eede75a
--- /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 0000000..a2590c9
--- /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 0000000..45c3307
--- /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 0000000..f6083d7
--- /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 0000000..e94c915
--- /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 0000000..4fc6da4
--- /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 50a1ba0..0000000
--- 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 0000000..0698033
--- /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 0000000..b774931
--- /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 0000000..b0858d9
--- /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 0000000..51dcb6a
--- /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 0000000..ab45353
--- /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 0000000..2479375
--- /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 0000000..de2dce1
--- /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 0000000..7b4fed3
--- /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 0000000..59e6d97
--- /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 cf25ed8..78d6146 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 0000000..5652e55
--- /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 72e28ec..0000000
--- 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 0000000..bec147a
--- /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 0000000..6c034e0
--- /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 0000000..2f3936e
--- /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 0000000..2ba16ee
--- /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 0000000..d92daa9
--- /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 0000000..9b5b02d
--- /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 3a80f86..0000000
--- 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 */