diff options
Diffstat (limited to 'sysdeps/powerpc')
6 files changed, 54 insertions, 2 deletions
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 78e9a9ad6e..e41e585979 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -1546,6 +1546,30 @@ float: 2 float128: 1 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 1 +float: 2 +float128: 3 +ldouble: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 +float128: 3 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +float128: 2 +ldouble: 3 + Function: "mul_downward_ldouble": double: 1 float: 1 diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps index 35a1e7b7fd..94d737a400 100644 --- a/sysdeps/powerpc/nofpu/libm-test-ulps +++ b/sysdeps/powerpc/nofpu/libm-test-ulps @@ -1260,6 +1260,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 2 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "mul_downward_ldouble": double: 1 float: 1 diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile index b59c4b21ba..43d9e5fa13 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile @@ -295,7 +295,7 @@ CFLAGS-s_llrintf128-ifunc.c += -fno-builtin-llrintf64x CFLAGS-s_llroundf128-ifunc.c += -fno-builtin-llroundf64x CFLAGS-e_logf128-ifunc.c += -fno-builtin-logf64x CFLAGS-w_log10f128-ifunc.c += -fno-builtin-log10f64x -CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x +CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x CFLAGS-e_log2f128-ifunc.c += -fno-builtin-log2f64x CFLAGS-s_logbf128-ifunc.c += -fno-builtin-logbf64x CFLAGS-s_lrintf128-ifunc.c += -fno-builtin-lrintf64x diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h index 40df525ea5..155aabc4b0 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h @@ -33,6 +33,10 @@ extern __typeof (ldexpf128) F128_SFX_APPEND (__ldexpf128); #define __ldexpf128 F128_SFX_APPEND (__ldexpf128) +extern __typeof (log1pf128) F128_SFX_APPEND (__w_log1pf128); + +#define __w_log1pf128 F128_SFX_APPEND (__w_log1pf128) + /* libm_hidden_proto is disabled by the time we reach here. Ensure some internally called functions are still called without going through the PLT. Note, this code is only diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h index ce337e4257..f235f824ae 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h @@ -138,7 +138,9 @@ /* Ensure the wrapper functions get exposed via IFUNC, not the wrappee (e.g __w_log1pf128_power8 instead of __log1pf128_power8. */ -#define DECL_ALIAS_w_log1p(x) MAKE_IFUNCP_WRAP_R(w_,x,) +#define DECL_ALIAS_w_log1p(x) \ + MAKE_IFUNCP_WRAP_R (w_, x, ) \ + MAKE_IFUNCP_WRAP_R (w_, logp1, ) #define DECL_ALIAS_w_scalbln(x) MAKE_IFUNCP_WRAP_R(w_,x,) /* These are declared in their respective jX objects. */ diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h index 790d9743f8..0506db0855 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h @@ -106,11 +106,13 @@ F128_REDIR (__remainderf128); extern _Float128 __wrap_scalbnf128 (_Float128, int); extern _Float128 __w_scalblnf128 (_Float128, long int); extern _Float128 __w_log1pf128 (_Float128); +extern _Float128 __w_logp1f128 (_Float128); extern _Float128 __scalbf128 (_Float128, _Float128); F128_REDIR (__scalbf128); F128_REDIR (__wrap_scalbnf128); F128_REDIR (__w_scalblnf128); F128_REDIR (__w_log1pf128); +F128_REDIR (__w_logp1f128); /* Include the redirects shared with math_private.h users. */ #include <float128-ifunc-redirects.h> |