]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Don't redirect inlined builtin math functions
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Sun, 26 Oct 2025 21:17:07 +0000 (18:17 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 27 Oct 2025 19:10:22 +0000 (16:10 -0300)
When we want to inline builtin math functions, like truncf, for

  extern float truncf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));
  extern float __truncf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));

  float (truncf) (float) asm ("__truncf");

compiler may redirect truncf calls to __truncf, instead of inlining it
(for instance, clang).  The USE_TRUNCF_BUILTIN is 1 to indicate that
truncf should be inlined.  In this case, we don't want the truncf
redirection:

  1. For each math function which may be inlined, we define

  #if USE_TRUNCF_BUILTIN
   # define NO_truncf_BUILTIN inline_truncf
   #else
   # define NO_truncf_BUILTIN truncf
   #endif

in <math-use-builtins.h>.

  2. Include <math-use-builtins.h> in include/math.h.

  3. Change MATH_REDIRECT to

   #define MATH_REDIRECT(FUNC, PREFIX, ARGS) \
    float (NO_ ## FUNC ## f ## _BUILTIN) (ARGS (float)) \
      asm (PREFIX #FUNC "f");

With this change If USE_TRUNCF_BUILTIN is 0, we get

  float (truncf) (float) asm ("__truncf");
  truncf will be redirected to __truncf.

And for USE_TRUNCF_BUILTIN 1, we get:

  float (inline_truncf) (float) asm ("__truncf");

In both cases either truncf will be inlined or the internal alias
(__truncf) will be called.

It is not required for all math-use-builtin symbol, only the one
defined in math.h.  It also allows to remove all the math-use-builtin
inclusion, since it is now implicitly included by math.h.

For MIPS, some math-use-builtin headers include sysdep.h and this
in turn includes a lot of extra headers that do not allow ldbl-128
code to override alias definition (math.h will include
some stdlib.h definition).  The math-use-builtin only requires
the __mips_isa_rev, so move the defintion to sgidefs.h.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
62 files changed:
include/math.h
math/s_fmax_template.c
math/s_fmin_template.c
sysdeps/generic/math-use-builtins-copysign.h
sysdeps/generic/math-use-builtins.h
sysdeps/ieee754/dbl-64/e_hypot.c
sysdeps/ieee754/dbl-64/e_sqrt.c
sysdeps/ieee754/dbl-64/s_ceil.c
sysdeps/ieee754/dbl-64/s_floor.c
sysdeps/ieee754/dbl-64/s_fma.c
sysdeps/ieee754/dbl-64/s_fmaf.c
sysdeps/ieee754/dbl-64/s_llrint.c
sysdeps/ieee754/dbl-64/s_llround.c
sysdeps/ieee754/dbl-64/s_logb.c
sysdeps/ieee754/dbl-64/s_lrint.c
sysdeps/ieee754/dbl-64/s_lround.c
sysdeps/ieee754/dbl-64/s_modf.c
sysdeps/ieee754/dbl-64/s_nearbyint.c
sysdeps/ieee754/dbl-64/s_rint.c
sysdeps/ieee754/dbl-64/s_round.c
sysdeps/ieee754/dbl-64/s_roundeven.c
sysdeps/ieee754/dbl-64/s_trunc.c
sysdeps/ieee754/float128/float128_private.h
sysdeps/ieee754/flt-32/e_sqrtf.c
sysdeps/ieee754/flt-32/s_ceilf.c
sysdeps/ieee754/flt-32/s_floorf.c
sysdeps/ieee754/flt-32/s_llrintf.c
sysdeps/ieee754/flt-32/s_llroundf.c
sysdeps/ieee754/flt-32/s_logbf.c
sysdeps/ieee754/flt-32/s_lrintf.c
sysdeps/ieee754/flt-32/s_lroundf.c
sysdeps/ieee754/flt-32/s_modff.c
sysdeps/ieee754/flt-32/s_nearbyintf.c
sysdeps/ieee754/flt-32/s_rintf.c
sysdeps/ieee754/flt-32/s_roundevenf.c
sysdeps/ieee754/flt-32/s_roundf.c
sysdeps/ieee754/flt-32/s_truncf.c
sysdeps/ieee754/ldbl-128/s_ceill.c
sysdeps/ieee754/ldbl-128/s_copysignl.c
sysdeps/ieee754/ldbl-128/s_floorl.c
sysdeps/ieee754/ldbl-128/s_fma.c
sysdeps/ieee754/ldbl-128/s_fmal.c
sysdeps/ieee754/ldbl-128/s_llrintl.c
sysdeps/ieee754/ldbl-128/s_logbl.c
sysdeps/ieee754/ldbl-128/s_lrintl.c
sysdeps/ieee754/ldbl-128/s_nearbyintl.c
sysdeps/ieee754/ldbl-128/s_rintl.c
sysdeps/ieee754/ldbl-128/s_roundevenl.c
sysdeps/ieee754/ldbl-128/s_roundl.c
sysdeps/ieee754/ldbl-128/s_truncl.c
sysdeps/ieee754/ldbl-128ibm/s_fabsl.c
sysdeps/ieee754/ldbl-96/s_fabsl.c
sysdeps/mips/fpu/math-use-builtins-fma.h
sysdeps/mips/math-use-builtins-ffs.h
sysdeps/mips/sgidefs.h
sysdeps/powerpc/fpu/e_sqrt.c
sysdeps/powerpc/fpu/e_sqrtf.c
sysdeps/unix/mips/sysdep.h
sysdeps/x86_64/fpu/multiarch/s_modf-avx.c
sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c
sysdeps/x86_64/fpu/multiarch/s_modff-avx.c
sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c

index 9ba4708801e7228655f37f2671cee8f847eaed91..0fac2fda849b0b6f7c382323f1feb802d7aba294 100644 (file)
@@ -139,25 +139,32 @@ fabsf128 (_Float128 x)
 /* NB: Internal tests don't have access to internal symbols.  */
 # if !IS_IN (testsuite_internal) \
      && !(defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+/* NB: Do not redirect math builtin functions when they are inlined.  */
+# include <math-use-builtins.h>
 #  ifndef NO_MATH_REDIRECT
 /* Declare some functions for use within GLIBC.  Compilers typically
    inline those functions as a single instruction.  Use an asm to
    avoid use of PLTs if it doesn't.  */
 #   define MATH_REDIRECT(FUNC, PREFIX, ARGS)                   \
-  float (FUNC ## f) (ARGS (float)) asm (PREFIX #FUNC "f");     \
-  double (FUNC) (ARGS (double)) asm (PREFIX #FUNC );           \
+  float (NO_ ## FUNC ## f ## _BUILTIN) (ARGS (float))          \
+    asm (PREFIX #FUNC "f");                                    \
+  double (NO_ ## FUNC ## _BUILTIN) (ARGS (double))             \
+    asm (PREFIX #FUNC );                                       \
   MATH_REDIRECT_LDBL (FUNC, PREFIX, ARGS)                      \
   MATH_REDIRECT_F128 (FUNC, PREFIX, ARGS)
+
 #   if defined __NO_LONG_DOUBLE_MATH                           \
        || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
 #    define MATH_REDIRECT_LDBL(FUNC, PREFIX, ARGS)
 #   else
-#    define MATH_REDIRECT_LDBL(FUNC, PREFIX, ARGS)                     \
-  long double (FUNC ## l) (ARGS (long double)) asm (PREFIX #FUNC "l");
+#    define MATH_REDIRECT_LDBL(FUNC, PREFIX, ARGS)               \
+  long double (NO_ ## FUNC ## l ## _BUILTIN) (ARGS (long double)) \
+    asm (PREFIX #FUNC "l");
 #   endif
 #   if __HAVE_DISTINCT_FLOAT128
-#    define MATH_REDIRECT_F128(FUNC, PREFIX, ARGS)                     \
-  _Float128 (FUNC ## f128) (ARGS (_Float128)) asm (PREFIX #FUNC "f128");
+#    define MATH_REDIRECT_F128(FUNC, PREFIX, ARGS)              \
+  _Float128 (NO_ ## FUNC ## f128 ## _BUILTIN) (ARGS (_Float128)) \
+    asm (PREFIX #FUNC "f128");
 #   else
 #    define MATH_REDIRECT_F128(FUNC, PREFIX, ARGS)
 #   endif
index bdf71096afa92b182f98c0f5a2532dbf2e0a73bf..87e6ee67dfa578ea7c335d52ab80880f327eb35c 100644 (file)
@@ -17,7 +17,6 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <math.h>
-#include <math-use-builtins.h>
 
 FLOAT
 M_DECL_FUNC (__fmax) (FLOAT x, FLOAT y)
index 99d25aa5b9bbcf5a684877ea7941363c616224ab..9ff330969f07afd156318312133e063601a62127 100644 (file)
@@ -17,8 +17,6 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <math.h>
-#include <math-use-builtins.h>
-
 
 FLOAT
 M_DECL_FUNC (__fmin) (FLOAT x, FLOAT y)
index b774931f4310633f14b56d6640b944ba325bf46c..4bca2ee1b10afb2c74d95bd7f532c02357ba2c97 100644 (file)
@@ -1,4 +1,6 @@
 /* Generic implementations for float and double always use the builtin.  */
+#define USE_COPYSIGNF_BUILTIN 1
+#define USE_COPYSIGN_BUILTIN 1
 #define USE_COPYSIGNL_BUILTIN 1
 #if __GNUC_PREREQ (7, 0)
 # define USE_COPYSIGNF128_BUILTIN 1
index e069b161b187c74739fac31051bdfab4c2d411d5..13b037fb9e8010507c859890928b6941b3900e16 100644 (file)
 #include <math-use-builtins-lround.h>
 #include <math-use-builtins-llround.h>
 
+
+/* Disable internal alias optimizations done at include/math.h if the
+   compiler can expand the builtin for the symbol.  Different than gcc, the
+   clang will always expand the alias before handling the builtin expansion,
+   which makes the builtin expansion ineffective.  */
+
+#if USE_SQRT_BUILTIN
+# define NO_sqrt_BUILTIN inline_sqrt
+#else
+# define NO_sqrt_BUILTIN sqrt
+#endif
+#if USE_SQRTF_BUILTIN
+# define NO_sqrtf_BUILTIN inline_sqrtf
+#else
+# define NO_sqrtf_BUILTIN sqrtf
+#endif
+#if USE_SQRTL_BUILTIN
+# define NO_sqrtl_BUILTIN inline_sqrtl
+#else
+# define NO_sqrtl_BUILTIN sqrtl
+#endif
+#if USE_SQRTF128_BUILTIN
+# define NO_sqrtf128_BUILTIN inline_sqrtf128
+#else
+# define NO_sqrtf128_BUILTIN sqrtf128
+#endif
+
+
+#if USE_CEIL_BUILTIN
+# define NO_ceil_BUILTIN inline_ceil
+#else
+# define NO_ceil_BUILTIN ceil
+#endif
+#if USE_CEILF_BUILTIN
+# define NO_ceilf_BUILTIN inline_ceilf
+#else
+# define NO_ceilf_BUILTIN ceilf
+#endif
+#if USE_CEILL_BUILTIN
+# define NO_ceill_BUILTIN inline_ceill
+#else
+# define NO_ceill_BUILTIN ceill
+#endif
+#if USE_CEILF128_BUILTIN
+# define NO_ceilf128_BUILTIN inline_ceilf128
+#else
+# define NO_ceilf128_BUILTIN ceilf128
+#endif
+
+#if USE_FLOOR_BUILTIN
+# define NO_floor_BUILTIN inline_floor
+#else
+# define NO_floor_BUILTIN floor
+#endif
+#if USE_FLOORF_BUILTIN
+# define NO_floorf_BUILTIN inline_floorf
+#else
+# define NO_floorf_BUILTIN floorf
+#endif
+#if USE_FLOORL_BUILTIN
+# define NO_floorl_BUILTIN inline_floorl
+#else
+# define NO_floorl_BUILTIN floorl
+#endif
+#if USE_FLOORF128_BUILTIN
+# define NO_floorf128_BUILTIN inline_floorf128
+#else
+# define NO_floorf128_BUILTIN floorf128
+#endif
+
+#if USE_ROUNDEVEN_BUILTIN
+# define NO_roundeven_BUILTIN inline_roundeven
+#else
+# define NO_roundeven_BUILTIN roundeven
+#endif
+#if USE_ROUNDEVENF_BUILTIN
+# define NO_roundevenf_BUILTIN inline_roundevenf
+#else
+# define NO_roundevenf_BUILTIN roundevenf
+#endif
+#if USE_ROUNDEVENL_BUILTIN
+# define NO_roundevenl_BUILTIN inline_roundevenl
+#else
+# define NO_roundevenl_BUILTIN roundevenl
+#endif
+#if USE_ROUNDEVENF128_BUILTIN
+# define NO_roundevenf128_BUILTIN inline_roundevenf128
+#else
+# define NO_roundevenf128_BUILTIN roundevenf128
+#endif
+
+#if USE_RINT_BUILTIN
+# define NO_rint_BUILTIN inline_rint
+#else
+# define NO_rint_BUILTIN rint
+#endif
+#if USE_RINTF_BUILTIN
+# define NO_rintf_BUILTIN inline_rintf
+#else
+# define NO_rintf_BUILTIN rintf
+#endif
+#if USE_RINTL_BUILTIN
+# define NO_rintl_BUILTIN inline_rintl
+#else
+# define NO_rintl_BUILTIN rintl
+#endif
+#if USE_RINTF128_BUILTIN
+# define NO_rintf128_BUILTIN inline_rintf128
+#else
+# define NO_rintf128_BUILTIN rintf128
+#endif
+
+#if USE_TRUNC_BUILTIN
+# define NO_trunc_BUILTIN inline_trunc
+#else
+# define NO_trunc_BUILTIN trunc
+#endif
+#if USE_TRUNCF_BUILTIN
+# define NO_truncf_BUILTIN inline_truncf
+#else
+# define NO_truncf_BUILTIN truncf
+#endif
+#if USE_TRUNCL_BUILTIN
+# define NO_truncl_BUILTIN inline_truncl
+#else
+# define NO_truncl_BUILTIN truncl
+#endif
+#if USE_TRUNCF128_BUILTIN
+# define NO_truncf128_BUILTIN inline_truncf128
+#else
+# define NO_truncf128_BUILTIN truncf128
+#endif
+
+#if USE_ROUND_BUILTIN
+# define NO_round_BUILTIN inline_round
+#else
+# define NO_round_BUILTIN round
+#endif
+#if USE_ROUNDF_BUILTIN
+# define NO_roundf_BUILTIN inline_roundf
+#else
+# define NO_roundf_BUILTIN roundf
+#endif
+#if USE_ROUNDL_BUILTIN
+# define NO_roundl_BUILTIN inline_roundl
+#else
+# define NO_roundl_BUILTIN roundl
+#endif
+#if USE_ROUNDF128_BUILTIN
+# define NO_roundf128_BUILTIN inline_roundf128
+#else
+# define NO_roundf128_BUILTIN roundf128
+#endif
+
+#if USE_COPYSIGN_BUILTIN
+# define NO_copysign_BUILTIN inline_copysign
+#else
+# define NO_copysign_BUILTIN copysign
+#endif
+#if USE_COPYSIGNF_BUILTIN
+# define NO_copysignf_BUILTIN inline_copysignf
+#else
+# define NO_copysignf_BUILTIN copysignf
+#endif
+#if USE_COPYSIGNL_BUILTIN
+# define NO_copysignl_BUILTIN inline_copysignl
+#else
+# define NO_copysignl_BUILTIN copysignl
+#endif
+#if USE_COPYSIGNF128_BUILTIN
+# define NO_copysignf128_BUILTIN inline_copysignf128
+#else
+# define NO_copysignf128_BUILTIN copysignf128
+#endif
+
+#if USE_FMA_BUILTIN
+# define NO_fma_BUILTIN inline_fma
+#else
+# define NO_fma_BUILTIN fma
+#endif
+#if USE_FMAF_BUILTIN
+# define NO_fmaf_BUILTIN inline_fmaf
+#else
+# define NO_fmaf_BUILTIN fmaf
+#endif
+#if USE_FMAL_BUILTIN
+# define NO_fmal_BUILTIN inline_fmal
+#else
+# define NO_fmal_BUILTIN fmal
+#endif
+#if USE_FMAF128_BUILTIN
+# define NO_fmaf128_BUILTIN inline_fmaf128
+#else
+# define NO_fmaf128_BUILTIN fmaf128
+#endif
+
 #endif /* MATH_USE_BUILTINS_H  */
index 29555927edf8f3ea03b76a1716d795cf21bd5018..799ccbd08ea6d535e5d953b890fd0e2682bd60af 100644 (file)
@@ -39,7 +39,6 @@
 #include <math_private.h>
 #include <math-underflow.h>
 #include <math-narrow-eval.h>
-#include <math-use-builtins.h>
 #include <math-svid-compat.h>
 #include <libm-alias-finite.h>
 #include <libm-alias-double.h>
index c01f0248c3785c23d99943159066f1e9b41167ff..95956e44adde6a8fba4560f1b232ad1c0c13015b 100644 (file)
@@ -40,7 +40,6 @@
 #include <math_private.h>
 #include <fenv_private.h>
 #include <libm-alias-finite.h>
-#include <math-use-builtins.h>
 
 /*********************************************************************/
 /* An ultimate sqrt routine. Given an IEEE double machine number x   */
index 373821136079820c4d86d28bb07f4d2f50a16b58..c401e4c0bf614381806daaea2a01678a4f534cb1 100644 (file)
@@ -21,7 +21,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-double.h>
-#include <math-use-builtins.h>
 
 double
 __ceil (double x)
index 72c426ee59df22a452ffccd694bbb3a8b3c55154..78ffb51e492021675e88932ae09a71eb377f39ae 100644 (file)
@@ -34,7 +34,6 @@
 #include <math_private.h>
 #include <stdint.h>
 #include <libm-alias-double.h>
-#include <math-use-builtins.h>
 
 /*
  * floor(x)
index d157e8b472acbbd83e0b0544f1e82602eff3eb45..c7ff3cf447f3b0c0e838be523a227960093d4956 100644 (file)
@@ -30,7 +30,6 @@
 #include <libm-alias-double.h>
 #include <math-narrow-alias.h>
 #include <tininess.h>
-#include <math-use-builtins.h>
 
 /* This implementation uses rounding to odd to avoid problems with
    double rounding.  See a paper by Boldo and Melquiond:
index 7bf9941dd8895dd6fd5c2b55c753429339bafc3e..26ced15465731247f6b73ed2712baf371f7e246c 100644 (file)
@@ -23,7 +23,6 @@
 #include <math-barriers.h>
 #include <fenv_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 
 /* This implementation relies on double being more than twice as
    precise as float and uses rounding to odd in order to avoid problems
index ec2643dcfec77fe53bf0e2ce5ae34d773f645eca..0745a75666e2f74002fac0c459cf9bb835617b57 100644 (file)
@@ -25,7 +25,6 @@
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 
 long long int
index e86d3dcb677f6498f939fe654fbf6776610491f2..2339b92a16713e5c71b9be872c475054208ddd61 100644 (file)
@@ -27,7 +27,6 @@
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 long long int
 __llround (double x)
index 64749bc49962e856fb7189d939a4842d2f1c7217..cc6daf53aa48fada5dcf8d0a753b397c30a2162c 100644 (file)
    <https://www.gnu.org/licenses/>.  */
 
 #include <math.h>
-
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <fix-int-fp-convert-zero.h>
-#include <math-use-builtins.h>
 
 double
 __logb (double x)
index 980959292e6e8f764a49d7707cf8440c0fb6967b..e4f034283e552c10289283079b3f586e8ba6f36c 100644 (file)
@@ -25,7 +25,6 @@
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 
 long int
index e92fa5ceedd89dc224d8a8826f8ea5ce68d808c6..c7abd1410b9d09fe76c713a9c4611f80208b671d 100644 (file)
@@ -23,7 +23,6 @@
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 /* For LP64, lround is an alias for llround.  */
 #ifndef _LP64
index 90cd8e8c3ef8db2c925da074f4e0b48e96c15afa..77e0226be93cda3d2d8141a9da0184b782fbd31e 100644 (file)
@@ -19,7 +19,6 @@
 #include <math.h>
 #include <libm-alias-double.h>
 #include "math_config.h"
-#include <math-use-builtins-trunc.h>
 
 double
 __modf (double x, double *iptr)
index 606002d6808f47af9a7b590f892e8cdbf8e0e26f..b2a6a81517df60c20b04aefefcaf7294f9251618 100644 (file)
@@ -25,7 +25,6 @@
 #include <math_private.h>
 #include <fenv_private.h>
 #include <libm-alias-double.h>
-#include <math-use-builtins.h>
 
 double
 __nearbyint (double x)
index 8604733ef95481cf82132a1dfcb3011cea29b133..a9740af4448eb0d9dddc7c8135ff8261ff9f4a49 100644 (file)
@@ -23,7 +23,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-double.h>
-#include <math-use-builtins.h>
 
 double
 __rint (double x)
index d3b8fcffc588afa4597530c01854e67da23d6297..064773011ba38abdbd971b0afd7f61dd8d3bbdd3 100644 (file)
@@ -22,8 +22,6 @@
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <stdint.h>
-#include <math-use-builtins.h>
-
 
 double
 __round (double x)
index 9f6b108dbd3d9276d305f4508e057617980fde84..f35a1f63e6045393f5affa1ad9426ddd81641149 100644 (file)
@@ -21,7 +21,6 @@
 #include <math_private.h>
 #include <libm-alias-double.h>
 #include <stdint.h>
-#include <math-use-builtins.h>
 
 #define BIAS 0x3ff
 #define MANT_DIG 53
index d2323d6f17f7a9230f12edeb966adaf3beca27f6..c426770cb67bbf94fbc9a3497bb484f408fe5708 100644 (file)
@@ -21,8 +21,6 @@
 
 #include <math_private.h>
 #include <libm-alias-double.h>
-#include <math-use-builtins.h>
-
 
 double
 __trunc (double x)
index 1430bba794ca5a3d90ecb5f3b4f3eb99b18253c7..d12cec947294047b4ad785139bf8bd59aa142d12 100644 (file)
 #define libm_alias_ldouble_narrow(from, to)    \
   libm_alias_float128_narrow (from, to)
 
-#include <math-use-builtins.h>
 #undef USE_NEARBYINTL_BUILTIN
 #define USE_NEARBYINTL_BUILTIN USE_NEARBYINTF128_BUILTIN
 #undef USE_RINTL_BUILTIN
index 0e29375786cce3d4d7eaafbce90b5016c1ba2a9e..e06a778eed1a660c11d842768036d6c0f64a469b 100644 (file)
@@ -15,7 +15,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-finite.h>
-#include <math-use-builtins.h>
 
 float
 __ieee754_sqrtf(float x)
index 0263552deeda45fa05152a7ae49d911c622d3c20..4ff9fe3230fb3b2f6295ffa1a6013e8ce4b25b67 100644 (file)
@@ -16,7 +16,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 
 float
 __ceilf (float x)
index a5c38818f1f23ad495f560c673b41796511f9363..b0447d73dace1d8c38ede6e5b56ba7f9516823bf 100644 (file)
@@ -23,7 +23,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 
 float
 __floorf (float x)
index dab8d22f6750e6ea188d393d001ad6b1843a9399..7aba715a487f9ab1fac0987586a4553ee3ed4c72 100644 (file)
@@ -25,7 +25,6 @@
 #include <math_private.h>
 #include <libm-alias-float.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 
 long long int
index bb92acbc4952ba0004b27524573aa70cf8ea05a5..849735aa627261ad72e752ee95c7b4d24b7ce22d 100644 (file)
@@ -23,7 +23,6 @@
 #include <math_private.h>
 #include <libm-alias-float.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 long long int
 __llroundf (float x)
index b027e7b9c24eae95bebd0958555572ccdbcb1092..29316e5787def3b594e80a083b8fbb2a98d6c311 100644 (file)
@@ -16,7 +16,6 @@
 #include <math_private.h>
 #include <libm-alias-float.h>
 #include <fix-int-fp-convert-zero.h>
-#include <math-use-builtins.h>
 
 float
 __logbf (float x)
index 079bc5d70bd94862a9af55f0ad7ddadd34accc26..a63fb7ba04d155bba71e58bcdc6203b8f483b3d7 100644 (file)
@@ -25,7 +25,6 @@
 #include <math_private.h>
 #include <libm-alias-float.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 
 long int
index f31c53136a6ad1257e64e4fe2068d7e3f147a45e..50decf66570cb1e889c5ab2235703a1d28bf951b 100644 (file)
@@ -23,7 +23,6 @@
 #include <math_private.h>
 #include <libm-alias-float.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 long int
 __lroundf (float x)
index 965136bac9f6bf49be7f322b9707e3c6a1a0e5a7..b5dac7521d34ce976149a218aed06bcf8576cf31 100644 (file)
@@ -19,7 +19,6 @@
 #include <math.h>
 #include <libm-alias-float.h>
 #include "math_config.h"
-#include <math-use-builtins-trunc.h>
 
 float
 __modff (float x, float *iptr)
index 5dd0e8f8af8431ad0f0f8966ce8ded5a1e5f4044..162bcde906f3a80cbbdee92713631ce255f5f1f3 100644 (file)
@@ -19,7 +19,6 @@
 #include <math_private.h>
 #include <fenv_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 
 float
 __nearbyintf (float x)
index fe5258ae61d78c33feeb8ac32b55b0ea3084fbf7..32afd71e9aa317770a5faf09a87b185baf30c34e 100644 (file)
@@ -16,7 +16,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 
 float
 __rintf (float x)
index 2981f365a586fc34dab942ffde2111e36198e218..882b55787de0f92737478644d971b233ec2c4602 100644 (file)
@@ -21,7 +21,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 #include <stdint.h>
 
 #define BIAS 0x7f
index eb714e975e48f737c140a1dd666135759ac0ffe3..746a7759f4eae09eb120141c34ef4cc7e6a312c2 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <math_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 
 
 float
index 6b36e1d491102dcf89d3b06ec73970d766709981..cef7c9168dfa7b41cf85e682cb0b44e81260d050 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <math_private.h>
 #include <libm-alias-float.h>
-#include <math-use-builtins.h>
 
 
 float
index f363d2f898b207ce778da07cad98cea5795aae13..5040a27325ec247e6f4a003453e7994a0ab43384 100644 (file)
@@ -27,7 +27,6 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 _Float128
 __ceill (_Float128 x)
index d512d9a1e23dd407a362d7671184e69e723a3bfb..92b835264830c566f12310452ce6c209c27f0bb2 100644 (file)
@@ -26,7 +26,6 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 _Float128
 __copysignl (_Float128 x, _Float128 y)
index 02eb663dd58df256a185b4fd2514ede366cd11b2..7c9d518fef5bf3fb057266f49485a6825b74141a 100644 (file)
@@ -27,7 +27,6 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 _Float128
 __floorl (_Float128 x)
index 01ca556260884553e2406581e94214730ce1f6eb..bf1b0664d2f5f12e0aeccd998dcf2695b9ec7f4b 100644 (file)
@@ -26,7 +26,6 @@
 #include <ieee754.h>
 #include <libm-alias-double.h>
 #include <math-narrow-alias.h>
-#include <math-use-builtins.h>
 
 /* This implementation relies on long double being more than twice as
    precise as double and uses rounding to odd in order to avoid problems
index 17ad90ca31065efa944e21044e442db3b733f9b4..ea253330b3a3f84d6a0789720b94fcad105a3939 100644 (file)
@@ -28,7 +28,6 @@
 #include <libm-alias-ldouble.h>
 #include <math-narrow-alias.h>
 #include <tininess.h>
-#include <math-use-builtins.h>
 
 /* This implementation uses rounding to odd to avoid problems with
    double rounding.  See a paper by Boldo and Melquiond:
index 07f5aca347e5696139a320d61092aaf8ef7241dd..d9283eab3ea8495f4ffcf45b11fa1ac2b1cbbb7d 100644 (file)
@@ -24,7 +24,6 @@
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 
 long long int
index 59b08aa29555849bad75afd928963891c147504a..7927155cac301e1bc84403de64bf84041615b87a 100644 (file)
@@ -25,7 +25,6 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 _Float128
 __logbl (_Float128 x)
index e5c0d5adb877e928c9921aef3068ea5a961a5287..027400d13713db07c93617b47235b4642501bdb7 100644 (file)
@@ -24,7 +24,6 @@
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
 #include <fix-fp-int-convert-overflow.h>
-#include <math-use-builtins.h>
 
 
 long int
index d76d0155ad21a837371a9ff7e55254415e5e6d2a..8e2b5bd1fa10e47bd1b3628ac7ac01fbe04a354a 100644 (file)
@@ -27,7 +27,6 @@
 #include <math-barriers.h>
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 _Float128
 __nearbyintl (_Float128 x)
index 072ed8ec15e18e479571ae724868b5536fecbf42..7badd06e85dd0ad542fd96fbe9c88098ac938345 100644 (file)
@@ -30,7 +30,6 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 _Float128
 __rintl (_Float128 x)
index ca3a5527cd932b51763ec4f9c247ec6e9272cace..0f935f63dde1223285394b6183e267763fd60ae5 100644 (file)
@@ -21,7 +21,6 @@
 #include <math.h>
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 #include <stdint.h>
 
 #define BIAS 0x3fff
index 9a87a463e89547ff15189418c31847e580bc4600..c5e70f33a84454230652e77fc174e64ae7cb5ee4 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 
 _Float128
index 2db087e85b3071050706a8dbfb232d065cdaff11..f4c6415521e8a0002979093e9a50bae5b967aab5 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <math_private.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 
 _Float128
index 7f26315e842c155f4c495636994ffb232ca2b3ed..fabe08f0b3a7165298b1b7bf0672ab9a46a9ded9 100644 (file)
@@ -24,7 +24,6 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 #include <math_ldbl_opt.h>
-#include <math-use-builtins.h>
 
 long double __fabsl(long double x)
 {
index 9891bb3a023d89ea8e00f7354bbfdd89a8b67091..19bcf089b3746c199816da9be4bdb424b6e51a13 100644 (file)
@@ -18,7 +18,6 @@
 
 #include <math.h>
 #include <libm-alias-ldouble.h>
-#include <math-use-builtins.h>
 
 long double
 __fabsl (long double x)
index 06e97922aa06dce4bda0d77d3a62061ff3240c11..bc65da7429e4f7eb00190742f019931d24ad9eda 100644 (file)
@@ -19,7 +19,7 @@
    ISA, double support can be subsetted.  Only FMAF is enabled for this
    case.  */
 
-#include <sysdep.h>
+#include <sgidefs.h>
 
 #if __mips_isa_rev >= 6
 # ifdef __mips_single_float
index 2ab6a03a168018a76250efc64fd654d8abb3ae01..4a3b432527aa651568bc9259d13e028d4953506d 100644 (file)
@@ -1,3 +1,3 @@
-#include <sysdep.h>
+#include <sgidefs.h>
 #define USE_FFS_BUILTIN (__mips_isa_rev >= 1)
 #define USE_FFSLL_BUILTIN (__mips_isa_rev >= 1)
index a8b31905df1f61e8814e2766a9c6de4c3d798f54..4656582782de9bc706c1ae6753b460724522aac0 100644 (file)
@@ -24,6 +24,9 @@
 #undef __ASM_SGIDEFS_H
 #define __ASM_SGIDEFS_H
 
+#ifndef __mips_isa_rev
+# define __mips_isa_rev 0
+#endif
 /*
  * And remove any damage it might have already done
  */
index 9bac5c2bbcf0ff8217bb93cd2cd121829300a078..a65e81892613d06808314b6c8492cbfb218608e6 100644 (file)
@@ -20,7 +20,6 @@
 #include <math_private.h>
 #include <fenv_libc.h>
 #include <libm-alias-finite.h>
-#include <math-use-builtins.h>
 
 double
 __ieee754_sqrt (double x)
index 7c3390444954e098bce3be5a7ee2b38ec1d2e1fa..d29a9a701730f9a97f5ac115b3f997cdceefdb60 100644 (file)
@@ -20,7 +20,6 @@
 #include <math_private.h>
 #include <fenv_libc.h>
 #include <libm-alias-finite.h>
-#include <math-use-builtins.h>
 
 float
 __ieee754_sqrtf (float x)
index 5f7706b182bcad0d12b506175056d7fbf3340e63..58e7aa2531b5bdb29e1d8fb7c195e452f5ac7b86 100644 (file)
@@ -18,9 +18,6 @@
 #include <sgidefs.h>
 #include <sysdeps/unix/sysdep.h>
 
-#ifndef __mips_isa_rev
-# define __mips_isa_rev 0
-#endif
 
 #ifdef __ASSEMBLER__
 
index 0982280d252cf2b8b9b61c73655cfeec29d3a65e..9b8b951a97cb41b3dd39c4cf0d7723d9f4034e50 100644 (file)
@@ -1,6 +1,2 @@
-#include <math_private.h>
-
 #define __modf __modf_avx
-#define trunc __trunc
-
 #include <sysdeps/ieee754/dbl-64/s_modf.c>
index f6fb996f979d993dfb1a0365b867423417c3c96c..1f773863364045e48d6c256a0f3c81a5c1665fd8 100644 (file)
@@ -1,6 +1,2 @@
-#include <math_private.h>
-
 #define __modf __modf_sse41
-#define trunc __trunc
-
 #include <sysdeps/ieee754/dbl-64/s_modf.c>
index b2afe1efe3c35cb85864c35881019edbdbf2238d..488f93700c0af22dc04c9d89d1546a8461e19282 100644 (file)
@@ -1,6 +1,2 @@
-#include <math_private.h>
-
 #define __modff __modff_avx
-#define truncf __truncf
-
 #include <sysdeps/ieee754/flt-32/s_modff.c>
index 0352c3ea4ba14a2f3fbe947cc5bd944190796e28..8e49970ffc7a25218aff44f2ac982eab9c618599 100644 (file)
@@ -1,6 +1,2 @@
-#include <math_private.h>
-
 #define __modff __modff_sse41
-#define truncf __truncf
-
 #include <sysdeps/ieee754/flt-32/s_modff.c>