From bb014f50c4a0c8d8db1ba5af55c104e430b5533d Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 17 Jun 2024 13:47:09 +0000 Subject: [PATCH] Implement C23 logp1 C23 adds various function families originally defined in TS 18661-4. Add the logp1 functions (aliases for log1p functions - the name is intended to be more consistent with the new log2p1 and log10p1, where clearly it would have been very confusing to name those functions log21p and log101p). As aliases rather than new functions, the content of this patch is somewhat different from those actually adding new functions. Tests are shared with log1p, so this patch *does* mechanically update all affected libm-test-ulps files to expect the same errors for both functions. The vector versions of log1p on aarch64 and x86_64 are *not* updated to have logp1 aliases (and thus there are no corresponding header, tests, abilist or ulps changes for vector functions either). It would be reasonable for such vector aliases and corresponding changes to other files to be made separately. For now, the log1p tests instead avoid testing logp1 in the vector case (a Makefile change is needed to avoid problems with grep, used in generating the .c files for vector function tests, matching more than one ALL_RM_TEST line in a file testing multiple functions with the same inputs, when it assumes that the .inc file only has a single such line). Tested for x86_64 and x86, and with build-many-glibcs.py. --- NEWS | 2 +- manual/math.texi | 12 ++++++++++ math/Makefile | 9 +++---- math/Versions | 2 ++ math/bits/mathcalls.h | 3 +++ math/gen-tgmath-tests.py | 1 + math/libm-test-log1p.inc | 12 ++++++++++ math/test-tgmath.c | 12 +++++++++- math/tgmath.h | 3 +++ math/w_log1p_template.c | 2 ++ sysdeps/aarch64/libm-test-ulps | 20 ++++++++++++++++ sysdeps/alpha/fpu/libm-test-ulps | 20 ++++++++++++++++ sysdeps/arc/fpu/libm-test-ulps | 16 +++++++++++++ sysdeps/arc/nofpu/libm-test-ulps | 4 ++++ sysdeps/arm/libm-test-ulps | 16 +++++++++++++ sysdeps/csky/fpu/libm-test-ulps | 16 +++++++++++++ sysdeps/csky/nofpu/libm-test-ulps | 16 +++++++++++++ sysdeps/hppa/fpu/libm-test-ulps | 16 +++++++++++++ sysdeps/i386/fpu/libm-test-ulps | 23 ++++++++++++++++++ .../i386/i686/fpu/multiarch/libm-test-ulps | 23 ++++++++++++++++++ sysdeps/ieee754/float128/Makefile | 2 +- sysdeps/ieee754/float128/float128_private.h | 1 + sysdeps/ieee754/ldbl-128/Makefile | 2 +- sysdeps/ieee754/ldbl-128ibm-compat/Versions | 1 + sysdeps/ieee754/ldbl-96/Makefile | 2 +- sysdeps/ieee754/ldbl-opt/Makefile | 2 +- sysdeps/ieee754/ldbl-opt/nldbl-log1p.c | 1 + sysdeps/loongarch/lp64/libm-test-ulps | 20 ++++++++++++++++ sysdeps/m68k/coldfire/fpu/libm-test-ulps | 3 +++ sysdeps/mach/hurd/i386/libm.abilist | 8 +++++++ sysdeps/mach/hurd/x86_64/libm.abilist | 8 +++++++ sysdeps/microblaze/libm-test-ulps | 4 ++++ sysdeps/mips/mips32/libm-test-ulps | 16 +++++++++++++ sysdeps/mips/mips64/libm-test-ulps | 20 ++++++++++++++++ sysdeps/nios2/libm-test-ulps | 4 ++++ sysdeps/or1k/fpu/libm-test-ulps | 16 +++++++++++++ sysdeps/or1k/nofpu/libm-test-ulps | 16 +++++++++++++ sysdeps/powerpc/fpu/libm-test-ulps | 24 +++++++++++++++++++ sysdeps/powerpc/nofpu/libm-test-ulps | 20 ++++++++++++++++ .../powerpc64/le/fpu/multiarch/Makefile | 2 +- .../fpu/multiarch/float128-ifunc-redirects.h | 4 ++++ .../le/fpu/multiarch/float128-ifunc.h | 4 +++- .../fpu/multiarch/math-type-macros-float128.h | 2 ++ sysdeps/riscv/nofpu/libm-test-ulps | 20 ++++++++++++++++ sysdeps/riscv/rvd/libm-test-ulps | 20 ++++++++++++++++ sysdeps/s390/fpu/libm-test-ulps | 20 ++++++++++++++++ sysdeps/sh/libm-test-ulps | 8 +++++++ sysdeps/sparc/fpu/libm-test-ulps | 20 ++++++++++++++++ sysdeps/unix/sysv/linux/aarch64/libm.abilist | 8 +++++++ sysdeps/unix/sysv/linux/alpha/libm.abilist | 8 +++++++ sysdeps/unix/sysv/linux/arc/libm.abilist | 6 +++++ sysdeps/unix/sysv/linux/arm/be/libm.abilist | 6 +++++ sysdeps/unix/sysv/linux/arm/le/libm.abilist | 6 +++++ sysdeps/unix/sysv/linux/csky/libm.abilist | 6 +++++ sysdeps/unix/sysv/linux/hppa/libm.abilist | 6 +++++ sysdeps/unix/sysv/linux/i386/libm.abilist | 8 +++++++ .../sysv/linux/loongarch/lp64/libm.abilist | 8 +++++++ .../sysv/linux/m68k/coldfire/libm.abilist | 6 +++++ .../unix/sysv/linux/m68k/m680x0/libm.abilist | 6 +++++ .../sysv/linux/microblaze/be/libm.abilist | 6 +++++ .../sysv/linux/microblaze/le/libm.abilist | 6 +++++ .../unix/sysv/linux/mips/mips32/libm.abilist | 6 +++++ .../unix/sysv/linux/mips/mips64/libm.abilist | 8 +++++++ sysdeps/unix/sysv/linux/nios2/libm.abilist | 6 +++++ sysdeps/unix/sysv/linux/or1k/libm.abilist | 6 +++++ .../linux/powerpc/powerpc32/fpu/libm.abilist | 6 +++++ .../powerpc/powerpc32/nofpu/libm.abilist | 6 +++++ .../linux/powerpc/powerpc64/be/libm.abilist | 6 +++++ .../linux/powerpc/powerpc64/le/libm.abilist | 9 +++++++ .../unix/sysv/linux/riscv/rv32/libm.abilist | 8 +++++++ .../unix/sysv/linux/riscv/rv64/libm.abilist | 8 +++++++ .../unix/sysv/linux/s390/s390-32/libm.abilist | 8 +++++++ .../unix/sysv/linux/s390/s390-64/libm.abilist | 8 +++++++ sysdeps/unix/sysv/linux/sh/be/libm.abilist | 6 +++++ sysdeps/unix/sysv/linux/sh/le/libm.abilist | 6 +++++ .../sysv/linux/sparc/sparc32/libm.abilist | 8 +++++++ .../sysv/linux/sparc/sparc64/libm.abilist | 8 +++++++ .../unix/sysv/linux/x86_64/64/libm.abilist | 8 +++++++ .../unix/sysv/linux/x86_64/x32/libm.abilist | 8 +++++++ sysdeps/x86_64/fpu/libm-test-ulps | 24 +++++++++++++++++++ 80 files changed, 725 insertions(+), 12 deletions(-) diff --git a/NEWS b/NEWS index 20e263f581a..c5fbdc6138d 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ Major new features: functions for float, double, long double, _FloatN and _FloatNx, and a type-generic macro in . - - Logarithmic functions: log2p1. + - Logarithmic functions: log2p1, logp1. * A new tunable, glibc.rtld.enable_secure, used to run a program as if it were a setuid process. This is currently a testing tool to allow diff --git a/manual/math.texi b/manual/math.texi index c99501ccb14..56f2295cfdc 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -745,13 +745,25 @@ to subtraction of two numbers that are nearly equal. @deftypefunx {long double} log1pl (long double @var{x}) @deftypefunx _FloatN log1pfN (_Float@var{N} @var{x}) @deftypefunx _FloatNx log1pfNx (_Float@var{N}x @var{x}) +@deftypefunx double logp1 (double @var{x}) +@deftypefunx float logp1f (float @var{x}) +@deftypefunx {long double} logp1l (long double @var{x}) +@deftypefunx _FloatN logp1fN (_Float@var{N} @var{x}) +@deftypefunx _FloatNx logp1fNx (_Float@var{N}x @var{x}) @standards{ISO, math.h} @standardsx{log1pfN, TS 18661-3:2015, math.h} @standardsx{log1pfNx, TS 18661-3:2015, math.h} +@standardsx{logp1, TS 18661-4:2015, math.h} +@standardsx{logp1f, TS 18661-4:2015, math.h} +@standardsx{logp1l, TS 18661-4:2015, math.h} +@standardsx{logp1fN, TS 18661-4:2015, math.h} +@standardsx{logp1fNx, TS 18661-4:2015, math.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} These functions return a value equivalent to @w{@code{log (1 + @var{x})}}. They are computed in a way that is accurate even if @var{x} is near zero. + +The @code{logp1} names for these functions are from TS 18661-4:2015. @end deftypefun @deftypefun double log2p1 (double @var{x}) diff --git a/math/Makefile b/math/Makefile index 58e5c070cf0..c55976cba89 100644 --- a/math/Makefile +++ b/math/Makefile @@ -966,6 +966,7 @@ tgmath3-macros = \ log2 \ log2p1 \ logb \ + logp1 \ lrint \ lround \ nearbyint \ @@ -1145,7 +1146,7 @@ $(foreach t,$(libm-tests-vector),$(objpfx)$(t).c): $(objpfx)test-%.c: type_func=$*; \ type=$${type_func%-*}; \ func=$${type_func##*-}; \ - func_args=$$(grep ALL_RM_TEST libm-test-$$func.inc \ + func_args=$$(grep "ALL_RM_TEST ($$func," libm-test-$$func.inc \ | sed 's/.*RUN_TEST_LOOP_//;s/_.*//'); \ ( \ echo "#include "; \ @@ -1375,7 +1376,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintl CFLAGS-s_llround.c += -fno-builtin-llroundl CFLAGS-e_log.c += -fno-builtin-logl CFLAGS-w_log10.c += -fno-builtin-log10l -CFLAGS-w_log1p.c += -fno-builtin-log1pl +CFLAGS-w_log1p.c += -fno-builtin-log1pl -fno-builtin-logp1l CFLAGS-e_log2.c += -fno-builtin-log2l CFLAGS-s_log2p1.c += -fno-builtin-log2p1l CFLAGS-s_logb.c += -fno-builtin-logbl @@ -1501,7 +1502,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintf32x -fno-builtin-llrintf64 CFLAGS-s_llround.c += -fno-builtin-llroundf32x -fno-builtin-llroundf64 CFLAGS-e_log.c += -fno-builtin-logf32x -fno-builtin-logf64 CFLAGS-w_log10.c += -fno-builtin-log10f32x -fno-builtin-log10f64 -CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64 +CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64 -fno-builtin-logp1f32x -fno-builtin-logp1f64 CFLAGS-e_log2.c += -fno-builtin-log2f32x -fno-builtin-log2f64 CFLAGS-s_log2p1.c += -fno-builtin-log2p1f32x -fno-builtin-log2p1f64 CFLAGS-s_logb.c += -fno-builtin-logbf32x -fno-builtin-logbf64 @@ -1616,7 +1617,7 @@ CFLAGS-s_llrintf.c += -fno-builtin-llrintf32 CFLAGS-s_llroundf.c += -fno-builtin-llroundf32 CFLAGS-e_logf.c += -fno-builtin-logf32 CFLAGS-w_log10f.c += -fno-builtin-log10f32 -CFLAGS-w_log1pf.c += -fno-builtin-log1pf32 +CFLAGS-w_log1pf.c += -fno-builtin-log1pf32 -fno-builtin-logp1f32 CFLAGS-e_log2f.c += -fno-builtin-log2f32 CFLAGS-s_log2p1f.c += -fno-builtin-log2p1f32 CFLAGS-s_logbf.c += -fno-builtin-logbf32 diff --git a/math/Versions b/math/Versions index 46b9b870102..f6ddd2f4f71 100644 --- a/math/Versions +++ b/math/Versions @@ -642,7 +642,9 @@ libm { GLIBC_2.40 { # Functions not involving _Float64x or _Float128, for all configurations. log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x; + logp1; logp1f; logp1l; logp1f32; logp1f64; logp1f32x; # Functions involving _Float64x or _Float128, for some configurations. log2p1f64x; log2p1f128; + logp1f64x; logp1f128; } } diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index fbfc27a4522..40f9cf35f74 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -115,6 +115,9 @@ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); + +/* Return log(1 + X). */ +__MATHCALL (logp1,, (_Mdouble_ __x)); #endif #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 diff --git a/math/gen-tgmath-tests.py b/math/gen-tgmath-tests.py index 1131481fad4..307b6579390 100755 --- a/math/gen-tgmath-tests.py +++ b/math/gen-tgmath-tests.py @@ -744,6 +744,7 @@ class Tests(object): # TS 18661-4 functions. self.add_tests('exp10', 'r', ['r']) self.add_tests('log2p1', 'r', ['r']) + self.add_tests('logp1', 'r', ['r']) # C23 functions. self.add_tests('fmaximum', 'r', ['r', 'r']) self.add_tests('fmaximum_mag', 'r', ['r', 'r']) diff --git a/math/libm-test-log1p.inc b/math/libm-test-log1p.inc index 67ad03f67cb..bcac6ffa4c0 100644 --- a/math/libm-test-log1p.inc +++ b/math/libm-test-log1p.inc @@ -40,10 +40,22 @@ log1p_test (void) ALL_RM_TEST (log1p, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END); } +#if !TEST_MATHVEC +static void +logp1_test (void) +{ + /* logp1 uses the same test data as log1p. */ + ALL_RM_TEST (logp1, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END); +} +#endif + static void do_test (void) { log1p_test (); +#if !TEST_MATHVEC + logp1_test (); +#endif } /* diff --git a/math/test-tgmath.c b/math/test-tgmath.c index 141e96bd6e2..290e9cb19f5 100644 --- a/math/test-tgmath.c +++ b/math/test-tgmath.c @@ -48,7 +48,7 @@ volatile int count_cdouble; volatile int count_cfloat; volatile int count_cldouble; -#define NCALLS 160 +#define NCALLS 162 #define NCALLS_INT 4 #define NCCALLS 47 @@ -256,6 +256,7 @@ F(compile_test) (void) a = exp10 (exp10 (x)); b = log2 (log2 (a)); a = log2p1 (log2p1 (x)); + a = logp1 (logp1 (x)); a = pow (pow (x, a), pow (c, b)); b = sqrt (sqrt (a)); a = hypot (hypot (x, b), hypot (c, a)); @@ -370,6 +371,7 @@ F(compile_test) (void) a = exp10 (y); a = log2 (y); a = log2p1 (y); + a = logp1 (y); a = pow (y, y); a = sqrt (y); a = hypot (y, y); @@ -651,6 +653,14 @@ TYPE return x; } +TYPE +(F(logp1)) (TYPE x) +{ + ++count; + P (); + return x; +} + TYPE (F(pow)) (TYPE x, TYPE y) { diff --git a/math/tgmath.h b/math/tgmath.h index d9ee3e3a176..78fd2f5ae8b 100644 --- a/math/tgmath.h +++ b/math/tgmath.h @@ -877,6 +877,9 @@ /* Return log2(1 + X). */ #define log2p1(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2p1) + +/* Return log(1 + X). */ +#define logp1(Val) __TGMATH_UNARY_REAL_ONLY (Val, logp1) #endif diff --git a/math/w_log1p_template.c b/math/w_log1p_template.c index bfdedb0c76c..100f2cdcf81 100644 --- a/math/w_log1p_template.c +++ b/math/w_log1p_template.c @@ -33,3 +33,5 @@ M_DECL_FUNC (__w_log1p) (FLOAT x) return M_SUF (__log1p) (x); } declare_mgen_alias (__w_log1p, log1p) +strong_alias (M_SUF (__w_log1p), M_SUF (__w_logp1)) +declare_mgen_alias (__w_logp1, logp1) diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps index 656d4b0169b..bcae2764ef5 100644 --- a/sysdeps/aarch64/libm-test-ulps +++ b/sysdeps/aarch64/libm-test-ulps @@ -1412,6 +1412,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps index f2929d6ffc2..392d23f80a8 100644 --- a/sysdeps/alpha/fpu/libm-test-ulps +++ b/sysdeps/alpha/fpu/libm-test-ulps @@ -1221,6 +1221,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/arc/fpu/libm-test-ulps b/sysdeps/arc/fpu/libm-test-ulps index 56ff9149cbb..41c8ef16d78 100644 --- a/sysdeps/arc/fpu/libm-test-ulps +++ b/sysdeps/arc/fpu/libm-test-ulps @@ -979,6 +979,22 @@ Function: "log_upward": double: 1 float: 1 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 1 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/nofpu/libm-test-ulps index 6ac2830b259..d3f45957d42 100644 --- a/sysdeps/arc/nofpu/libm-test-ulps +++ b/sysdeps/arc/nofpu/libm-test-ulps @@ -234,6 +234,10 @@ Function: "log2": double: 2 float: 1 +Function: "logp1": +double: 1 +float: 1 + Function: "pow": double: 1 diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps index fc7ba1439a3..c96ec03e315 100644 --- a/sysdeps/arm/libm-test-ulps +++ b/sysdeps/arm/libm-test-ulps @@ -991,6 +991,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/csky/fpu/libm-test-ulps b/sysdeps/csky/fpu/libm-test-ulps index 6e1356e5325..fc634f89cae 100644 --- a/sysdeps/csky/fpu/libm-test-ulps +++ b/sysdeps/csky/fpu/libm-test-ulps @@ -950,6 +950,22 @@ double: 2 Function: "log2_upward": double: 3 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 diff --git a/sysdeps/csky/nofpu/libm-test-ulps b/sysdeps/csky/nofpu/libm-test-ulps index 8a2de74d794..a1e28c8ee01 100644 --- a/sysdeps/csky/nofpu/libm-test-ulps +++ b/sysdeps/csky/nofpu/libm-test-ulps @@ -964,6 +964,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/hppa/fpu/libm-test-ulps b/sysdeps/hppa/fpu/libm-test-ulps index 3d60fc25a14..8b4dfb68503 100644 --- a/sysdeps/hppa/fpu/libm-test-ulps +++ b/sysdeps/hppa/fpu/libm-test-ulps @@ -1000,6 +1000,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index f2139fc172c..ef851562d18 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -1436,6 +1436,29 @@ double: 1 float128: 1 ldouble: 1 +Function: "logp1": +double: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_towardzero": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_upward": +double: 1 +float: 1 +float128: 2 +ldouble: 3 + Function: "pow": double: 1 float128: 2 diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps index b892c43e59c..e2b2492e2f6 100644 --- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps +++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps @@ -1463,6 +1463,29 @@ double: 1 float128: 1 ldouble: 1 +Function: "logp1": +double: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_towardzero": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_upward": +double: 1 +float: 1 +float128: 2 +ldouble: 3 + Function: "pow": double: 1 float128: 2 diff --git a/sysdeps/ieee754/float128/Makefile b/sysdeps/ieee754/float128/Makefile index f869e80f268..f0f6aae6ae1 100644 --- a/sysdeps/ieee754/float128/Makefile +++ b/sysdeps/ieee754/float128/Makefile @@ -100,7 +100,7 @@ CFLAGS-s_llrintf128.c += -fno-builtin-llrintf64x CFLAGS-s_llroundf128.c += -fno-builtin-llroundf64x CFLAGS-e_logf128.c += -fno-builtin-logf64x CFLAGS-w_log10f128.c += -fno-builtin-log10f64x -CFLAGS-w_log1pf128.c += -fno-builtin-log1pf64x +CFLAGS-w_log1pf128.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x CFLAGS-e_log2f128.c += -fno-builtin-log2f64x CFLAGS-s_logbf128.c += -fno-builtin-logbf64x CFLAGS-s_lrintf128.c += -fno-builtin-lrintf64x diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h index 38a8bdd0fe1..19aa6c46f20 100644 --- a/sysdeps/ieee754/float128/float128_private.h +++ b/sysdeps/ieee754/float128/float128_private.h @@ -358,6 +358,7 @@ #define llroundl llroundf128 #define log1pl log1pf128 #define logbl logbf128 +#define logp1l logp1f128 #define logl logf128 #define lrintl lrintf128 #define lroundl lroundf128 diff --git a/sysdeps/ieee754/ldbl-128/Makefile b/sysdeps/ieee754/ldbl-128/Makefile index 9cbfc7ff6e8..1901238c5b2 100644 --- a/sysdeps/ieee754/ldbl-128/Makefile +++ b/sysdeps/ieee754/ldbl-128/Makefile @@ -89,7 +89,7 @@ CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x -fno-builtin-llrintf128 CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x -fno-builtin-llroundf128 CFLAGS-e_logl.c += -fno-builtin-logf64x -fno-builtin-logf128 CFLAGS-w_log10l.c += -fno-builtin-log10f64x -fno-builtin-log10f128 -CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-log1pf128 +CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-log1pf128 -fno-builtin-logp1f64x -fno-builtin-logp1f128 CFLAGS-e_log2l.c += -fno-builtin-log2f64x -fno-builtin-log2f128 CFLAGS-s_logbl.c += -fno-builtin-logbf64x -fno-builtin-logbf128 CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x -fno-builtin-lrintf128 diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions index c9a74366fd9..018e0a8871f 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions @@ -139,6 +139,7 @@ libm { } GLIBC_2.40 { __log2p1ieee128; + __logp1ieee128; } } libc { diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile index 170e77b2f9f..a3ec2c54ca7 100644 --- a/sysdeps/ieee754/ldbl-96/Makefile +++ b/sysdeps/ieee754/ldbl-96/Makefile @@ -110,7 +110,7 @@ CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x CFLAGS-e_logl.c += -fno-builtin-logf64x CFLAGS-w_log10l.c += -fno-builtin-log10f64x -CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x +CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x CFLAGS-e_log2l.c += -fno-builtin-log2f64x CFLAGS-s_logbl.c += -fno-builtin-logbf64x CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile index d1eda5d0224..9c204ff9b38 100644 --- a/sysdeps/ieee754/ldbl-opt/Makefile +++ b/sysdeps/ieee754/ldbl-opt/Makefile @@ -341,7 +341,7 @@ CFLAGS-nldbl-llrint.c = -fno-builtin-llrintl CFLAGS-nldbl-llround.c = -fno-builtin-llroundl CFLAGS-nldbl-log.c = -fno-builtin-logl CFLAGS-nldbl-log10.c = -fno-builtin-log10l -CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl +CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl -fno-builtin-logp1l CFLAGS-nldbl-log2.c = -fno-builtin-log2l CFLAGS-nldbl-log2p1.c = -fno-builtin-log2p1l CFLAGS-nldbl-logb.c = -fno-builtin-logbl diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c b/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c index 455b25a9f40..b0de985183f 100644 --- a/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c +++ b/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c @@ -6,3 +6,4 @@ log1pl (double x) { return log1p (x); } +weak_alias (log1pl, logp1l) diff --git a/sysdeps/loongarch/lp64/libm-test-ulps b/sysdeps/loongarch/lp64/libm-test-ulps index 185c5b4e929..f9db4d3eace 100644 --- a/sysdeps/loongarch/lp64/libm-test-ulps +++ b/sysdeps/loongarch/lp64/libm-test-ulps @@ -1232,6 +1232,26 @@ Function: "log_upward": double: 1 ldouble: 2 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/sysdeps/m68k/coldfire/fpu/libm-test-ulps index ad3649f8900..1b25a70e3ff 100644 --- a/sysdeps/m68k/coldfire/fpu/libm-test-ulps +++ b/sysdeps/m68k/coldfire/fpu/libm-test-ulps @@ -134,6 +134,9 @@ float: 2 Function: "log1p": float: 1 +Function: "logp1": +float: 1 + Function: "sincos": double: 1 float: 1 diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 113daa4b44d..88010e5b2d7 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1189,3 +1189,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/mach/hurd/x86_64/libm.abilist b/sysdeps/mach/hurd/x86_64/libm.abilist index 0c7ffd4e3f7..394e5988cb9 100644 --- a/sysdeps/mach/hurd/x86_64/libm.abilist +++ b/sysdeps/mach/hurd/x86_64/libm.abilist @@ -1046,3 +1046,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/microblaze/libm-test-ulps b/sysdeps/microblaze/libm-test-ulps index faa31849137..d3666eb7d4d 100644 --- a/sysdeps/microblaze/libm-test-ulps +++ b/sysdeps/microblaze/libm-test-ulps @@ -231,6 +231,10 @@ Function: "log2": double: 2 float: 1 +Function: "logp1": +double: 1 +float: 1 + Function: "pow": float: 1 diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps index 5720e73288c..2984d0d42bf 100644 --- a/sysdeps/mips/mips32/libm-test-ulps +++ b/sysdeps/mips/mips32/libm-test-ulps @@ -975,6 +975,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps index 933aba47350..f2fd0581baf 100644 --- a/sysdeps/mips/mips64/libm-test-ulps +++ b/sysdeps/mips/mips64/libm-test-ulps @@ -1223,6 +1223,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/nios2/libm-test-ulps b/sysdeps/nios2/libm-test-ulps index 2cbef489bb0..c8d1a722f7d 100644 --- a/sysdeps/nios2/libm-test-ulps +++ b/sysdeps/nios2/libm-test-ulps @@ -237,6 +237,10 @@ Function: "log2": double: 2 float: 1 +Function: "logp1": +double: 1 +float: 1 + Function: "pow": double: 1 float: 3 diff --git a/sysdeps/or1k/fpu/libm-test-ulps b/sysdeps/or1k/fpu/libm-test-ulps index 948ec01cdc0..59b9f072f5d 100644 --- a/sysdeps/or1k/fpu/libm-test-ulps +++ b/sysdeps/or1k/fpu/libm-test-ulps @@ -955,6 +955,22 @@ double: 1 Function: "log2_upward": double: 1 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 diff --git a/sysdeps/or1k/nofpu/libm-test-ulps b/sysdeps/or1k/nofpu/libm-test-ulps index 785bae70d0d..726855faaad 100644 --- a/sysdeps/or1k/nofpu/libm-test-ulps +++ b/sysdeps/or1k/nofpu/libm-test-ulps @@ -953,6 +953,22 @@ double: 1 Function: "log2_upward": double: 1 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 78e9a9ad6e1..e41e585979d 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 35a1e7b7fd9..94d737a400e 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 b59c4b21baf..43d9e5fa134 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 40df525ea5e..155aabc4b08 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 ce337e42577..f235f824aef 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 790d9743f8e..0506db0855b 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 diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps index bc7e615177a..d8cff3e077f 100644 --- a/sysdeps/riscv/nofpu/libm-test-ulps +++ b/sysdeps/riscv/nofpu/libm-test-ulps @@ -1208,6 +1208,26 @@ Function: "log_upward": double: 1 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/riscv/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps index a3a05a87054..fced981030a 100644 --- a/sysdeps/riscv/rvd/libm-test-ulps +++ b/sysdeps/riscv/rvd/libm-test-ulps @@ -1212,6 +1212,26 @@ Function: "log_upward": double: 1 ldouble: 2 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps index e24adb94e8e..f2da8493f85 100644 --- a/sysdeps/s390/fpu/libm-test-ulps +++ b/sysdeps/s390/fpu/libm-test-ulps @@ -1230,6 +1230,26 @@ ldouble: 2 Function: "log_upward": ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps index 9c297f44815..3c842599417 100644 --- a/sysdeps/sh/libm-test-ulps +++ b/sysdeps/sh/libm-test-ulps @@ -475,6 +475,14 @@ float: 1 Function: "log2_towardzero": double: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_towardzero": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps index 2d490e07136..d6a6b70d667 100644 --- a/sysdeps/sparc/fpu/libm-test-ulps +++ b/sysdeps/sparc/fpu/libm-test-ulps @@ -1223,6 +1223,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 3 diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index a4bb5396704..40027fc3d3e 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 8ff65e3f7e9..5967de89a19 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1316,3 +1316,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist index af9df2673c1..57affc37fc3 100644 --- a/sysdeps/unix/sysv/linux/arc/libm.abilist +++ b/sysdeps/unix/sysv/linux/arc/libm.abilist @@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 0e460259f33..e225b995c1b 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 0e460259f33..e225b995c1b 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist index 4c1216044da..2a9f9a6779c 100644 --- a/sysdeps/unix/sysv/linux/csky/libm.abilist +++ b/sysdeps/unix/sysv/linux/csky/libm.abilist @@ -829,3 +829,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 3ea5b611eb4..6fa800390dc 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 696e52e65a4..b6b1aa0289e 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1196,3 +1196,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist index 1c6f02ac5a6..b225d61eac3 100644 --- a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist +++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist @@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 0e460259f33..e225b995c1b 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index be8262bb489..cd4cafbe14e 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -890,3 +890,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index cc091b2d4ed..604af40dacc 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index cc091b2d4ed..604af40dacc 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 4d442a989d9..56ec45feb01 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index ae7b4a75583..e97dd13eb42 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 9ed3fbdee4b..1603d163a26 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/or1k/libm.abilist b/sysdeps/unix/sysv/linux/or1k/libm.abilist index 69655f7d239..7565572118d 100644 --- a/sysdeps/unix/sysv/linux/or1k/libm.abilist +++ b/sysdeps/unix/sysv/linux/or1k/libm.abilist @@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 564eb87d4b2..1f61a9cb316 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1001,3 +1001,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index a57eedb779d..c9af2d21b90 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1000,3 +1000,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 7564069a376..b0af67d524e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -994,3 +994,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index b02a7115af3..28f3ee62644 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1322,6 +1322,7 @@ GLIBC_2.38 fmod F GLIBC_2.38 fmodf F GLIBC_2.39 exp10 F GLIBC_2.40 __log2p1ieee128 F +GLIBC_2.40 __logp1ieee128 F GLIBC_2.40 log2p1 F GLIBC_2.40 log2p1f F GLIBC_2.40 log2p1f128 F @@ -1330,3 +1331,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist index 7bf0bd7c7a7..dae4531180e 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist @@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index c22d9bb7c6c..dc506b8a8b7 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -1133,3 +1133,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 2fb712ec71a..818e2c419eb 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 40489589a7f..03d51e1dfec 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index a5363e90d60..b6a03d11465 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index a5363e90d60..b6a03d11465 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 9bda9bdeb50..312544d6539 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1267,3 +1267,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 61d2aa05a9b..391b583a66e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index bbf646fe7f5..47b5b9178df 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 7c7b884dde8..809c5f4186e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index 893c22b19b5..97876cadf26 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -1907,6 +1907,30 @@ float: 3 Function: "log_vlen8_avx2": float: 3 +Function: "logp1": +double: 1 +float: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 2 +float: 2 +float128: 3 +ldouble: 4 + +Function: "logp1_towardzero": +double: 2 +float: 2 +float128: 3 +ldouble: 4 + +Function: "logp1_upward": +double: 2 +float: 2 +float128: 2 +ldouble: 3 + Function: "pow": double: 1 float: 1 -- 2.39.5