From: Adhemerval Zanella Date: Wed, 1 Dec 2021 13:37:44 +0000 (-0300) Subject: math: Add math-use-builtinds-fmax.h X-Git-Tag: glibc-2.35~256 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=72ab1eaec7e46cdb6c4f37fb687a7a593f93020a;p=platform%2Fupstream%2Fglibc.git math: Add math-use-builtinds-fmax.h It allows the architecture to use the builtin instead of generic implementation. --- diff --git a/math/s_fmax_template.c b/math/s_fmax_template.c index d817406..4a88266 100644 --- a/math/s_fmax_template.c +++ b/math/s_fmax_template.c @@ -17,10 +17,14 @@ . */ #include +#include FLOAT M_DECL_FUNC (__fmax) (FLOAT x, FLOAT y) { +#if M_USE_BUILTIN (FMAX) + return M_SUF (__builtin_fmax) (x, y); +#else if (isgreaterequal (x, y)) return x; else if (isless (x, y)) @@ -29,6 +33,7 @@ M_DECL_FUNC (__fmax) (FLOAT x, FLOAT y) return x + y; else return isnan (y) ? x : y; +#endif } declare_mgen_alias (__fmax, fmax); diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h index 8d2d836..e29112d 100644 --- a/sysdeps/generic/math-type-macros-double.h +++ b/sysdeps/generic/math-type-macros-double.h @@ -26,6 +26,7 @@ #define FLOAT double #define CFLOAT _Complex double #define M_STRTO_NAN __strtod_nan +#define M_USE_BUILTIN(c) USE_ ##c ##_BUILTIN #include #include diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h index fb84d62..5ba7615 100644 --- a/sysdeps/generic/math-type-macros-float.h +++ b/sysdeps/generic/math-type-macros-float.h @@ -25,6 +25,7 @@ #define FLOAT float #define CFLOAT _Complex float #define M_STRTO_NAN __strtof_nan +#define M_USE_BUILTIN(c) USE_ ##c ##F_BUILTIN /* Standard/GNU macro literals do not exist for the float type. Use the double macro constants. */ diff --git a/sysdeps/generic/math-type-macros-float128.h b/sysdeps/generic/math-type-macros-float128.h index 5c19060..de4de6e 100644 --- a/sysdeps/generic/math-type-macros-float128.h +++ b/sysdeps/generic/math-type-macros-float128.h @@ -24,6 +24,7 @@ #define M_SUF(c) c ## f128 #define FLOAT _Float128 #define M_STRTO_NAN __strtof128_nan +#define M_USE_BUILTIN(c) USE_ ##c ##F128_BUILTIN #define CFLOAT __CFLOAT128 diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h index a2f2825..c3edfce 100644 --- a/sysdeps/generic/math-type-macros-ldouble.h +++ b/sysdeps/generic/math-type-macros-ldouble.h @@ -26,6 +26,7 @@ #define FLOAT long double #define CFLOAT _Complex long double #define M_STRTO_NAN __strtold_nan +#define M_USE_BUILTIN(c) USE_ ##c ##L_BUILTIN #include #include diff --git a/sysdeps/generic/math-use-builtins-fmax.h b/sysdeps/generic/math-use-builtins-fmax.h new file mode 100644 index 0000000..8fc4efc --- /dev/null +++ b/sysdeps/generic/math-use-builtins-fmax.h @@ -0,0 +1,4 @@ +#define USE_FMAX_BUILTIN 0 +#define USE_FMAXF_BUILTIN 0 +#define USE_FMAXL_BUILTIN 0 +#define USE_FMAXF128_BUILTIN 0 diff --git a/sysdeps/generic/math-use-builtins.h b/sysdeps/generic/math-use-builtins.h index 19d2d1c..e07bba2 100644 --- a/sysdeps/generic/math-use-builtins.h +++ b/sysdeps/generic/math-use-builtins.h @@ -34,5 +34,6 @@ #include #include #include +#include #endif /* MATH_USE_BUILTINS_H */