about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-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
70 files changed, 673 insertions, 6 deletions
diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps
index 656d4b0169..bcae2764ef 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 f2929d6ffc..392d23f80a 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 56ff9149cb..41c8ef16d7 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 6ac2830b25..d3f45957d4 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 fc7ba1439a..c96ec03e31 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 6e1356e532..fc634f89ca 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 8a2de74d79..a1e28c8ee0 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 3d60fc25a1..8b4dfb6850 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 f2139fc172..ef851562d1 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 b892c43e59..e2b2492e2f 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 f869e80f26..f0f6aae6ae 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 38a8bdd0fe..19aa6c46f2 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 9cbfc7ff6e..1901238c5b 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 c9a74366fd..018e0a8871 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 170e77b2f9..a3ec2c54ca 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 d1eda5d022..9c204ff9b3 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 455b25a9f4..b0de985183 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 185c5b4e92..f9db4d3eac 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 ad3649f890..1b25a70e3f 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 113daa4b44..88010e5b2d 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 0c7ffd4e3f..394e5988cb 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 faa3184913..d3666eb7d4 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 5720e73288..2984d0d42b 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 933aba4735..f2fd0581ba 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 2cbef489bb..c8d1a722f7 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 948ec01cdc..59b9f072f5 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 785bae70d0..726855faaa 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 78e9a9ad6e..e41e585979 100644
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/sysdeps/powerpc/fpu/libm-test-ulps
@@ -1546,6 +1546,30 @@ float: 2
 float128: 1
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+float128: 3
+ldouble: 2
+
+Function: "logp1_downward":
+double: 1
+float: 2
+float128: 3
+ldouble: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+float128: 3
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+float128: 2
+ldouble: 3
+
 Function: "mul_downward_ldouble":
 double: 1
 float: 1
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
index 35a1e7b7fd..94d737a400 100644
--- a/sysdeps/powerpc/nofpu/libm-test-ulps
+++ b/sysdeps/powerpc/nofpu/libm-test-ulps
@@ -1260,6 +1260,26 @@ double: 1
 float: 2
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 2
+
+Function: "logp1_downward":
+double: 2
+float: 2
+ldouble: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "mul_downward_ldouble":
 double: 1
 float: 1
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile
index b59c4b21ba..43d9e5fa13 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile
@@ -295,7 +295,7 @@ CFLAGS-s_llrintf128-ifunc.c += -fno-builtin-llrintf64x
 CFLAGS-s_llroundf128-ifunc.c += -fno-builtin-llroundf64x
 CFLAGS-e_logf128-ifunc.c += -fno-builtin-logf64x
 CFLAGS-w_log10f128-ifunc.c += -fno-builtin-log10f64x
-CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x
+CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x
 CFLAGS-e_log2f128-ifunc.c += -fno-builtin-log2f64x
 CFLAGS-s_logbf128-ifunc.c += -fno-builtin-logbf64x
 CFLAGS-s_lrintf128-ifunc.c += -fno-builtin-lrintf64x
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h
index 40df525ea5..155aabc4b0 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h
@@ -33,6 +33,10 @@ extern __typeof (ldexpf128) F128_SFX_APPEND (__ldexpf128);
 
 #define __ldexpf128 F128_SFX_APPEND (__ldexpf128)
 
+extern __typeof (log1pf128) F128_SFX_APPEND (__w_log1pf128);
+
+#define __w_log1pf128 F128_SFX_APPEND (__w_log1pf128)
+
 /* libm_hidden_proto is disabled by the time we reach here.
    Ensure some internally called functions are still called
    without going through the PLT.  Note, this code is only
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h
index ce337e4257..f235f824ae 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h
@@ -138,7 +138,9 @@
 
 /* Ensure the wrapper functions get exposed via IFUNC, not the
    wrappee (e.g __w_log1pf128_power8 instead of __log1pf128_power8.  */
-#define DECL_ALIAS_w_log1p(x) MAKE_IFUNCP_WRAP_R(w_,x,)
+#define DECL_ALIAS_w_log1p(x)			\
+  MAKE_IFUNCP_WRAP_R (w_, x, )			\
+  MAKE_IFUNCP_WRAP_R (w_, logp1, )
 #define DECL_ALIAS_w_scalbln(x) MAKE_IFUNCP_WRAP_R(w_,x,)
 
 /* These are declared in their respective jX objects.  */
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h
index 790d9743f8..0506db0855 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h
@@ -106,11 +106,13 @@ F128_REDIR (__remainderf128);
 extern _Float128 __wrap_scalbnf128 (_Float128, int);
 extern _Float128 __w_scalblnf128 (_Float128, long int);
 extern _Float128 __w_log1pf128 (_Float128);
+extern _Float128 __w_logp1f128 (_Float128);
 extern _Float128 __scalbf128 (_Float128, _Float128);
 F128_REDIR (__scalbf128);
 F128_REDIR (__wrap_scalbnf128);
 F128_REDIR (__w_scalblnf128);
 F128_REDIR (__w_log1pf128);
+F128_REDIR (__w_logp1f128);
 
 /* Include the redirects shared with math_private.h users.  */
 #include <float128-ifunc-redirects.h>
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
index bc7e615177..d8cff3e077 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 a3a05a8705..fced981030 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 e24adb94e8..f2da8493f8 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 9c297f4481..3c84259941 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 2d490e0713..d6a6b70d66 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 a4bb539670..40027fc3d3 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 8ff65e3f7e..5967de89a1 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 af9df2673c..57affc37fc 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 0e460259f3..e225b995c1 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 0e460259f3..e225b995c1 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 4c1216044d..2a9f9a6779 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 3ea5b611eb..6fa800390d 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 696e52e65a..b6b1aa0289 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 1c6f02ac5a..b225d61eac 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 0e460259f3..e225b995c1 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 be8262bb48..cd4cafbe14 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 cc091b2d4e..604af40dac 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 cc091b2d4e..604af40dac 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 4d442a989d..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 ae7b4a7558..e97dd13eb4 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 9ed3fbdee4..1603d163a2 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 69655f7d23..7565572118 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 564eb87d4b..1f61a9cb31 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 a57eedb779..c9af2d21b9 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 7564069a37..b0af67d524 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 b02a7115af..28f3ee6264 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 7bf0bd7c7a..dae4531180 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 c22d9bb7c6..dc506b8a8b 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 2fb712ec71..818e2c419e 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 40489589a7..03d51e1dfe 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 a5363e90d6..b6a03d1146 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 a5363e90d6..b6a03d1146 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 9bda9bdeb5..312544d653 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 61d2aa05a9..391b583a66 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 bbf646fe7f..47b5b9178d 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 7c7b884dde..809c5f4186 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 893c22b19b..97876cadf2 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