diff mbox series

[08/10] math: Remove the error handling wrapper from atanhf

Message ID 20241219202003.2651277-9-adhemerval.zanella@linaro.org
State New
Headers show
Series Remove the SVID wrapper from CORE-MATH functions. | expand

Commit Message

Adhemerval Zanella Netto Dec. 19, 2024, 8:13 p.m. UTC
It improves latency for about 1-10% and throughput for about 5-10%.
---
 math/Versions                                         |  1 +
 math/w_atanhf.c                                       |  8 ++++++++
 math/w_atanhf_compat.c                                | 11 ++++++++---
 sysdeps/ieee754/flt-32/e_atanhf.c                     | 11 ++++++++++-
 sysdeps/ieee754/flt-32/w_atanhf.c                     |  1 +
 sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c             |  8 ++++++++
 sysdeps/mach/hurd/i386/libm.abilist                   |  1 +
 sysdeps/unix/sysv/linux/aarch64/libm.abilist          |  1 +
 sysdeps/unix/sysv/linux/alpha/libm.abilist            |  1 +
 sysdeps/unix/sysv/linux/arm/be/libm.abilist           |  1 +
 sysdeps/unix/sysv/linux/arm/le/libm.abilist           |  1 +
 sysdeps/unix/sysv/linux/hppa/libm.abilist             |  1 +
 sysdeps/unix/sysv/linux/i386/libm.abilist             |  1 +
 sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/microblaze/be/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/microblaze/le/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/mips/mips32/libm.abilist      |  1 +
 sysdeps/unix/sysv/linux/mips/mips64/libm.abilist      |  1 +
 .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist     |  1 +
 .../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist   |  1 +
 .../unix/sysv/linux/powerpc/powerpc64/be/libm.abilist |  1 +
 .../unix/sysv/linux/powerpc/powerpc64/le/libm.abilist |  1 +
 sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist     |  1 +
 sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist     |  1 +
 sysdeps/unix/sysv/linux/sh/be/libm.abilist            |  1 +
 sysdeps/unix/sysv/linux/sh/le/libm.abilist            |  1 +
 sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist    |  1 +
 sysdeps/unix/sysv/linux/x86_64/64/libm.abilist        |  1 +
 sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist       |  1 +
 30 files changed, 60 insertions(+), 4 deletions(-)
 create mode 100644 math/w_atanhf.c
 create mode 100644 sysdeps/ieee754/flt-32/w_atanhf.c
 create mode 100644 sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c
diff mbox series

Patch

diff --git a/math/Versions b/math/Versions
index 2a3d98ed55..eec40df280 100644
--- a/math/Versions
+++ b/math/Versions
@@ -677,5 +677,6 @@  libm {
     asinf;
     acoshf;
     atan2f;
+    atanhf;
   }
 }
diff --git a/math/w_atanhf.c b/math/w_atanhf.c
new file mode 100644
index 0000000000..41842a2405
--- /dev/null
+++ b/math/w_atanhf.c
@@ -0,0 +1,8 @@ 
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_atanh_template.c>
+versioned_symbol (libm, __atanhf, atanhf, GLIBC_2_41);
+libm_alias_float_other (__atanhf, atanhf)
diff --git a/math/w_atanhf_compat.c b/math/w_atanhf_compat.c
index 2f076e2c9c..7b69b5834b 100644
--- a/math/w_atanhf_compat.c
+++ b/math/w_atanhf_compat.c
@@ -21,10 +21,10 @@ 
 #include <libm-alias-float.h>
 
 
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_41)
 /* wrapper atanhf */
 float
-__atanhf (float x)
+__atanh_compatf (float x)
 {
   if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0)
       && _LIB_VERSION != _IEEE_)
@@ -35,5 +35,10 @@  __atanhf (float x)
 
   return __ieee754_atanhf (x);
 }
-libm_alias_float (__atanh, atanh)
+# ifdef NO_COMPAT_NEEDED
+strong_alias (__atanh_compatf, __atanhf)
+libm_alias_float (__atanh_compat, atanh)
+# else
+compat_symbol (libm, __atanh_compatf, atanhf, GLIBC_2_0);
+# endif
 #endif
diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c
index 5138408324..ce8b5d468d 100644
--- a/sysdeps/ieee754/flt-32/e_atanhf.c
+++ b/sysdeps/ieee754/flt-32/e_atanhf.c
@@ -27,6 +27,8 @@  SOFTWARE.
 #include <math.h>
 #include <stdint.h>
 #include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
 #include "math_config.h"
 
 static __attribute__((noinline)) float
@@ -42,7 +44,7 @@  as_special (float x)
 }
 
 float
-__ieee754_atanhf (float x)
+__atanhf (float x)
 {
   /* Calculate atanh(x) using the difference of two logarithms -- atanh(x) =
      (ln(1+x) - ln(1-x))/2  */
@@ -175,4 +177,11 @@  __ieee754_atanhf (float x)
     }
   return ub;
 }
+strong_alias (__atanhf, __ieee754_atanhf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __atanhf, atanhf, GLIBC_2_41);
+libm_alias_float_other (__atanh, atanh)
+#else
+libm_alias_float (__atanh, atanh)
+#endif
 libm_alias_finite (__ieee754_atanhf, __atanhf)
diff --git a/sysdeps/ieee754/flt-32/w_atanhf.c b/sysdeps/ieee754/flt-32/w_atanhf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_atanhf.c
@@ -0,0 +1 @@ 
+/* Not needed.  */
diff --git a/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c b/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c
new file mode 100644
index 0000000000..1ec8434684
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c
@@ -0,0 +1,8 @@ 
+/* m68k provides an optimized __ieee754_atanhf.  */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_atanhf_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_atanh_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 3db9b3adfa..8a677586a4 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1249,6 +1249,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 2a35531ea3..a24d8d7cc0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1217,6 +1217,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index cbfe056a3c..75e23816fb 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1376,6 +1376,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index e0b25bc3e0..a17def2e99 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index e0b25bc3e0..a17def2e99 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 1424f5750d..3a1a59941b 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index a8a721d67f..258ac73394 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1256,6 +1256,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index e0b25bc3e0..a17def2e99 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 542f70b72b..25c8973206 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 542f70b72b..25c8973206 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index db67a1e9b3..17e652a194 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 8c9766fdab..96fd6402a1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1217,6 +1217,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 714fb3e30b..67a2149329 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1047,6 +1047,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 9d22bfee36..7e208298a8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1046,6 +1046,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 12ee8f317d..e2398bbaf2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1040,6 +1040,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index cbcda8ea59..f79497406e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1401,6 +1401,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 66b6d77226..cd0a0aaf74 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1320,6 +1320,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index e93f6dd720..c942a3feb3 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1320,6 +1320,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index df3534dd3c..63df58337b 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index df3534dd3c..63df58337b 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -900,6 +900,7 @@  GLIBC_2.41 atan2pif32 F
 GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif32 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index ebed5cb2a1..7c5b14aac8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1327,6 +1327,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 4d35d566c3..ea6cb72a4f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1217,6 +1217,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index e3c4f35dd1..afba1055e8 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1250,6 +1250,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 46fca15315..5164a53b43 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1250,6 +1250,7 @@  GLIBC_2.41 atan2pif32x F
 GLIBC_2.41 atan2pif64 F
 GLIBC_2.41 atan2pif64x F
 GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanhf F
 GLIBC_2.41 atanpi F
 GLIBC_2.41 atanpif F
 GLIBC_2.41 atanpif128 F