aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--manual/math.texi12
-rw-r--r--math/Makefile9
-rw-r--r--math/Versions2
-rw-r--r--math/bits/mathcalls.h3
-rwxr-xr-xmath/gen-tgmath-tests.py1
-rw-r--r--math/libm-test-log1p.inc12
-rw-r--r--math/test-tgmath.c12
-rw-r--r--math/tgmath.h3
-rw-r--r--math/w_log1p_template.c2
-rw-r--r--sysdeps/aarch64/libm-test-ulps20
-rw-r--r--sysdeps/alpha/fpu/libm-test-ulps20
-rw-r--r--sysdeps/arc/fpu/libm-test-ulps16
-rw-r--r--sysdeps/arc/nofpu/libm-test-ulps4
-rw-r--r--sysdeps/arm/libm-test-ulps16
-rw-r--r--sysdeps/csky/fpu/libm-test-ulps16
-rw-r--r--sysdeps/csky/nofpu/libm-test-ulps16
-rw-r--r--sysdeps/hppa/fpu/libm-test-ulps16
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps23
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps23
-rw-r--r--sysdeps/ieee754/float128/Makefile2
-rw-r--r--sysdeps/ieee754/float128/float128_private.h1
-rw-r--r--sysdeps/ieee754/ldbl-128/Makefile2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Versions1
-rw-r--r--sysdeps/ieee754/ldbl-96/Makefile2
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-log1p.c1
-rw-r--r--sysdeps/loongarch/lp64/libm-test-ulps20
-rw-r--r--sysdeps/m68k/coldfire/fpu/libm-test-ulps3
-rw-r--r--sysdeps/mach/hurd/i386/libm.abilist8
-rw-r--r--sysdeps/mach/hurd/x86_64/libm.abilist8
-rw-r--r--sysdeps/microblaze/libm-test-ulps4
-rw-r--r--sysdeps/mips/mips32/libm-test-ulps16
-rw-r--r--sysdeps/mips/mips64/libm-test-ulps20
-rw-r--r--sysdeps/nios2/libm-test-ulps4
-rw-r--r--sysdeps/or1k/fpu/libm-test-ulps16
-rw-r--r--sysdeps/or1k/nofpu/libm-test-ulps16
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps24
-rw-r--r--sysdeps/powerpc/nofpu/libm-test-ulps20
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile2
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h4
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h4
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h2
-rw-r--r--sysdeps/riscv/nofpu/libm-test-ulps20
-rw-r--r--sysdeps/riscv/rvd/libm-test-ulps20
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps20
-rw-r--r--sysdeps/sh/libm-test-ulps8
-rw-r--r--sysdeps/sparc/fpu/libm-test-ulps20
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/arc/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/csky/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/i386/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/or1k/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist8
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps24
80 files changed, 725 insertions, 12 deletions
diff --git a/NEWS b/NEWS
index 20e263f..c5fbdc6 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 <tgmath.h>.
- - 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 c99501c..56f2295 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 58e5c07..c55976c 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 <test-$$type.h>"; \
@@ -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 46b9b87..f6ddd2f 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 fbfc27a..40f9cf3 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 1131481..307b657 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 67ad03f..bcac6ff 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 141e96b..290e9cb 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);
@@ -652,6 +654,14 @@ TYPE
}
TYPE
+(F(logp1)) (TYPE x)
+{
+ ++count;
+ P ();
+ return x;
+}
+
+TYPE
(F(pow)) (TYPE x, TYPE y)
{
++count;
diff --git a/math/tgmath.h b/math/tgmath.h
index d9ee3e3..78fd2f5 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 bfdedb0..100f2cd 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 656d4b0..bcae276 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 f2929d6..392d23f 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 56ff914..41c8ef1 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 6ac2830..d3f4595 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 fc7ba14..c96ec03 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 6e1356e..fc634f8 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 8a2de74..a1e28c8 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 3d60fc2..8b4dfb6 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 f2139fc..ef85156 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 b892c43..e2b2492 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 f869e80..f0f6aae 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 38a8bdd..19aa6c4 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 9cbfc7f..1901238 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 c9a7436..018e0a8 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 170e77b..a3ec2c5 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 d1eda5d..9c204ff 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 455b25a..b0de985 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 185c5b4..f9db4d3 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 ad3649f..1b25a70 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 113daa4..88010e5 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 0c7ffd4..394e598 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 faa3184..d3666eb 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 5720e73..2984d0d 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 933aba4..f2fd058 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 2cbef48..c8d1a72 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 948ec01..59b9f07 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 785bae7..726855f 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 78e9a9a..e41e585 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 35a1e7b..94d737a 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 b59c4b2..43d9e5f 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 40df525..155aabc 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 ce337e4..f235f82 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 790d974..0506db0 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>
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
index bc7e615..d8cff3e 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 a3a05a8..fced981 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 e24adb9..f2da849 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 9c297f4..3c84259 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 2d490e0..d6a6b70 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 a4bb539..40027fc 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 8ff65e3..5967de8 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 af9df26..57affc3 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 0e46025..e225b99 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 0e46025..e225b99 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 4c12160..2a9f9a6 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 3ea5b61..6fa8003 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 696e52e..b6b1aa0 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 1c6f02a..b225d61 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 0e46025..e225b99 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 be8262b..cd4cafb 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 cc091b2..604af40 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 cc091b2..604af40 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 4d442a9..56ec45feb0 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 ae7b4a7..e97dd13 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 9ed3fbd..1603d16 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 69655f7..7565572 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 564eb87..1f61a9c 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 a57eedb..c9af2d2 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 7564069..b0af67d 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 b02a711..28f3ee6 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 7bf0bd7..dae4531 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 c22d9bb..dc506b8 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 2fb712e..818e2c4 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 4048958..03d51e1 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 a5363e90..b6a03d1 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 a5363e90..b6a03d1 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 9bda9bd..312544d 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 61d2aa0..391b583 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 bbf646f..47b5b91 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 7c7b884..809c5f4 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 893c22b..97876ca 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