]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Remove the SVID error handling from acoshf
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 8 Oct 2025 13:55:12 +0000 (10:55 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 30 Oct 2025 18:41:24 +0000 (15:41 -0300)
It improves latency for about 3-7% and throughput for about 5-10%.

Tested on x86_64-linux-gnu and i686-linux-gnu.

Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
29 files changed:
math/Versions
math/w_acoshf_compat.c
sysdeps/ieee754/flt-32/e_acoshf.c
sysdeps/ieee754/flt-32/w_acoshf.c [new file with mode: 0644]
sysdeps/mach/hurd/i386/libm.abilist
sysdeps/unix/sysv/linux/aarch64/libm.abilist
sysdeps/unix/sysv/linux/alpha/libm.abilist
sysdeps/unix/sysv/linux/arm/be/libm.abilist
sysdeps/unix/sysv/linux/arm/le/libm.abilist
sysdeps/unix/sysv/linux/hppa/libm.abilist
sysdeps/unix/sysv/linux/i386/libm.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
sysdeps/unix/sysv/linux/sh/be/libm.abilist
sysdeps/unix/sysv/linux/sh/le/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist

index 31818c273ecd816e01b5a39ec2b8652cb748dd4b..91cd7ea08d948f70670cba024de2d150a4bd6c68 100644 (file)
@@ -689,6 +689,7 @@ libm {
   GLIBC_2.43 {
     # No SVID compatible error handling.
     acosf;
+    acoshf;
     asinf;
     log10f;
   }
index aa5da5c436b33b243e965faa503f28a677044c70..104ce08aaf8734b64e7984142eba3b7d520ed626 100644 (file)
 #include <libm-alias-float.h>
 
 
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43)
 /* wrapper acoshf */
 float
-__acoshf (float x)
+__acosh_compatf (float x)
 {
   if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_)
     /* acosh(x<1) */
@@ -32,5 +32,5 @@ __acoshf (float x)
 
   return __ieee754_acoshf (x);
 }
-libm_alias_float (__acosh, acosh)
+compat_symbol (libm, __acosh_compatf, acoshf, GLIBC_2_0);
 #endif
index 6cbc4f584b276b3283e48e20d4560a679450946b..77bc15cccc09f20673c9bba7ce18e069ee6e86fc 100644 (file)
@@ -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"
 #include "s_asincoshf_data.h"
 
@@ -44,7 +46,7 @@ as_special (float x)
 }
 
 float
-__ieee754_acoshf (float x)
+__acoshf (float x)
 {
   uint32_t t = asuint (x);
   if (__glibc_unlikely (t <= 0x3f800000u))
@@ -105,4 +107,11 @@ __ieee754_acoshf (float x)
   else
     return as_special (x);
 }
+strong_alias (__acoshf, __ieee754_acoshf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __acoshf, acoshf, GLIBC_2_43);
+libm_alias_float_other (__acosh, acosh)
+#else
+libm_alias_float (__acosh, acosh)
+#endif
 libm_alias_finite (__ieee754_acoshf, __acoshf)
diff --git a/sysdeps/ieee754/flt-32/w_acoshf.c b/sysdeps/ieee754/flt-32/w_acoshf.c
new file mode 100644 (file)
index 0000000..1cc8931
--- /dev/null
@@ -0,0 +1 @@
+/* Not needed.  */
index 3ff2c0dad8e7fb1e47f307132250a76cde564313..b0cc5c148888e116650f95f8a09387e1c7b8b90d 100644 (file)
@@ -1318,6 +1318,7 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
index 47aab9a6390a8fcda832e0c8d79ed391345a0004..8466365fa94a64bab67b50a557585276b494f306 100644 (file)
@@ -1286,5 +1286,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index c87a431e0eb652dfffe9fea46e049695e5bf37db..1a93e45c87cc8240ec321970cc59f6ca62125520 100644 (file)
@@ -1445,5 +1445,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 2f3a625a238fb85720c9eb8b58375edede0d1747..c0d276d840d8facc48641db4d8dc98d5e9404bd6 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 2f3a625a238fb85720c9eb8b58375edede0d1747..c0d276d840d8facc48641db4d8dc98d5e9404bd6 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index ac4865c45dbc3985e620547eeeeaf43cf8bf0a65..68c063a87557060bc69f2d80f5b974cfaeded6c0 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 5991eed44a9dcbc90ffc57832a43540a0cb323a5..244bbfbfecde1fd6203627238d4300286b020d5f 100644 (file)
@@ -1325,6 +1325,7 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
index 2f3a625a238fb85720c9eb8b58375edede0d1747..c0d276d840d8facc48641db4d8dc98d5e9404bd6 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index a9d615da7454b2686420231b2b0eeaa513cb17c3..e6ad98649cea106b2bcac8e23a69515159b7e947 100644 (file)
@@ -986,5 +986,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
index 10f90a832a413624b713caae93fd9fa7565b0100..5b8cc9db2c4c73463c8ec240b7cc877c91f44938 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 10f90a832a413624b713caae93fd9fa7565b0100..5b8cc9db2c4c73463c8ec240b7cc877c91f44938 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 958a34a941767b3446465ef0346f5a8861c3e581..931d594f43111d8e42582b1e0b2efa530a46ddab 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 3ac3157fb134fcb24cb7b613ba573c4600308e0d..89f5b72f6b30209f107e62b4f16a52ad6250e67d 100644 (file)
@@ -1286,5 +1286,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index abad644ffb7f902d011fc4ac2a75dbaffcdc4f33..42afc1ee939b189c9f2a8dc4585a572f118e1ab4 100644 (file)
@@ -1098,5 +1098,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 0c242767a288e3974ce8ca7477794c1e379e4bac..b4aa786f50fa89d0217a59cc08073ecff31bc68a 100644 (file)
@@ -1097,5 +1097,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index f34cc891a024940b4830328b0b6c929047c49d11..a57829eaa6372de5aefa3775f0a61ac02a4b44a0 100644 (file)
@@ -1091,5 +1091,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 93ccf0cd8171de054640a1a617147a8428fc87e4..9e918c0921bfe0accf78f345360e64118b28c170 100644 (file)
@@ -1475,5 +1475,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index df2a3a29d2576e0cd49199f75920de92ca53cf09..8be1d25e14ced564d576185e72503dacbe55634d 100644 (file)
@@ -1389,5 +1389,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 629fcb7c90497eed8d5aa100632a7d7d3717f0af..5444c3787e05a21dfd3539cac6f3cd038d3e38f2 100644 (file)
@@ -1389,5 +1389,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 61bfb5042be6e37843a0dab8fddaef0468b46ba7..8d131dba21da4cc8ddb437c22f85155115552aae 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 61bfb5042be6e37843a0dab8fddaef0468b46ba7..8d131dba21da4cc8ddb437c22f85155115552aae 100644 (file)
@@ -951,5 +951,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index cbfd38ab70ff6aaea8665fbe014e85eacb6a8594..d336392bdec2737e22c780f1ae880f7cb2d65b19 100644 (file)
@@ -1396,5 +1396,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index a9e14706d09fa01924539b7025c6324c61000993..646bb43d424f472ff04998636edfccf0da75a570 100644 (file)
@@ -1286,5 +1286,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 638dfac592cbd9c34b8e25052f3addde2a57d3a8..1edc5945702e51c5a517cffb37cffe0c9108fcb7 100644 (file)
@@ -1319,5 +1319,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F
index 89f9cc34de636cb6c265a01b70e4ce87669995ea..7498f8c29e72bc79632dc45a4b84320b36bd8285 100644 (file)
@@ -1319,5 +1319,6 @@ GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acosf F
+GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 log10f F