aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorJoseph Myers <josmyers@redhat.com>2024-12-09 23:01:29 +0000
committerJoseph Myers <josmyers@redhat.com>2024-12-09 23:01:29 +0000
commit28d102d15c6af7f80cb1077e098e020476d26d00 (patch)
treeea46b5497d8ed73dab0ada5d3297e85410b5b097 /sysdeps
parentbe13e467641cda4bd147ef3ef3afe9e4c6a35e1d (diff)
downloadglibc-28d102d15c6af7f80cb1077e098e020476d26d00.zip
glibc-28d102d15c6af7f80cb1077e098e020476d26d00.tar.gz
glibc-28d102d15c6af7f80cb1077e098e020476d26d00.tar.bz2
Implement C23 acospi
C23 adds various <math.h> function families originally defined in TS 18661-4. Add the acospi functions (acos(x)/pi). Tested for x86_64 and x86, and with build-many-glibcs.py.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps24
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Versions1
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-acospi.c8
-rw-r--r--sysdeps/mach/hurd/i386/libm.abilist8
-rw-r--r--sysdeps/mach/hurd/x86_64/libm.abilist8
-rw-r--r--sysdeps/powerpc/nofpu/Makefile1
-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/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
38 files changed, 285 insertions, 0 deletions
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
index 225e8f9..3098bfb 100644
--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
+++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
@@ -39,6 +39,30 @@ double: 1
float128: 3
ldouble: 3
+Function: "acospi":
+double: 1
+float: 1
+float128: 1
+ldouble: 1
+
+Function: "acospi_downward":
+double: 1
+float: 1
+float128: 1
+ldouble: 3
+
+Function: "acospi_towardzero":
+double: 1
+float: 1
+float128: 1
+ldouble: 3
+
+Function: "acospi_upward":
+double: 1
+float: 1
+float128: 2
+ldouble: 2
+
Function: "asin":
double: 1
float128: 1
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
index 336ce74..163c7ea 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
@@ -145,6 +145,7 @@ libm {
__logp1ieee128;
}
GLIBC_2.41 {
+ __acospiieee128;
__cospiieee128;
__sinpiieee128;
__tanpiieee128;
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index bd1a379..7161f4b 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -14,6 +14,7 @@ extra-libs += libnldbl
libnldbl-calls = \
acos \
acosh \
+ acospi \
asin \
asinh \
asprintf \
@@ -257,6 +258,7 @@ extra-objs += $(addsuffix .oS, $(libnldbl-routines))
CFLAGS-nldbl-acos.c = -fno-builtin-acosl
CFLAGS-nldbl-acosh.c = -fno-builtin-acoshl
+CFLAGS-nldbl-acospi.c = -fno-builtin-acospi
CFLAGS-nldbl-asin.c = -fno-builtin-asinl
CFLAGS-nldbl-asinh.c = -fno-builtin-asinhl
CFLAGS-nldbl-atan.c = -fno-builtin-atanl
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-acospi.c b/sysdeps/ieee754/ldbl-opt/nldbl-acospi.c
new file mode 100644
index 0000000..666037a
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-acospi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+acospil (double x)
+{
+ return acospi (x);
+}
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 67c17d7..02b5b9f 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1221,6 +1221,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/mach/hurd/x86_64/libm.abilist b/sysdeps/mach/hurd/x86_64/libm.abilist
index 53b84f6..e23fd40 100644
--- a/sysdeps/mach/hurd/x86_64/libm.abilist
+++ b/sysdeps/mach/hurd/x86_64/libm.abilist
@@ -1078,6 +1078,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile
index 8131c5a..71a7abd 100644
--- a/sysdeps/powerpc/nofpu/Makefile
+++ b/sysdeps/powerpc/nofpu/Makefile
@@ -41,6 +41,7 @@ CFLAGS-s_cospil.c += -fno-builtin-fabsl
CFLAGS-s_csinl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_csqrtl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-w_acosl_compat.c += -fno-builtin-fabsl
+CFLAGS-s_acospil.c += -fno-builtin-fabsl
CFLAGS-w_asinl_compat.c += -fno-builtin-fabsl
CFLAGS-w_atanhl_compat.c += -fno-builtin-fabsl
CFLAGS-w_j0l_compat.c += -fno-builtin-fabsl
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index ddde060..b8c9464 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1189,6 +1189,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 1b94ce3..43a5d47 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1348,6 +1348,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist
index caacdfe..d058e93 100644
--- a/sysdeps/unix/sysv/linux/arc/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libm.abilist
@@ -787,6 +787,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index e771722..5e67e21 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index e771722..5e67e21 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist
index 2604592..e1e2982 100644
--- a/sysdeps/unix/sysv/linux/csky/libm.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libm.abilist
@@ -853,6 +853,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 2f12876..bc6c8d8 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 3427dd7..b4bc9cd 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1228,6 +1228,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
index dd37a07..1280f4f 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
@@ -1068,6 +1068,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index e771722..5e67e21 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index f0eedc7..651eb4e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -914,6 +914,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 0054224..79ad23e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 0054224..79ad23e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 3040f1d..3df62b6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index e3e0597..8039bab 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1189,6 +1189,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/or1k/libm.abilist b/sysdeps/unix/sysv/linux/or1k/libm.abilist
index cd05986..c92a97e 100644
--- a/sysdeps/unix/sysv/linux/or1k/libm.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libm.abilist
@@ -787,6 +787,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 4b44d4a..85e3b27 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1025,6 +1025,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index cd95cf0..d6cd8e6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1024,6 +1024,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 74ea537..a041fb3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1018,6 +1018,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 765adfc..4854303 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1366,9 +1366,18 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 __acospiieee128 F
GLIBC_2.41 __cospiieee128 F
GLIBC_2.41 __sinpiieee128 F
GLIBC_2.41 __tanpiieee128 F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
index 273f0d0..6c1b6e2 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
@@ -1068,6 +1068,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
index c5e3afe..9edf5f1 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
@@ -1165,6 +1165,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 5615af2..7c0df69 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1292,6 +1292,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 88e6647..4f70479 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1292,6 +1292,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 6349d9f..e0a3eab 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 6349d9f..e0a3eab 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -878,6 +878,12 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 09cabc5..4567aa1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1299,6 +1299,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 1ac1a53..840f1eb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1189,6 +1189,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index ebcb839..d071747 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1222,6 +1222,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 5dfc308..9f9383f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1222,6 +1222,14 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index c09c81c..13cfe01 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -89,6 +89,30 @@ float: 1
Function: "acosh_vlen8_avx2":
float: 2
+Function: "acospi":
+double: 1
+float: 1
+float128: 1
+ldouble: 1
+
+Function: "acospi_downward":
+double: 1
+float: 2
+float128: 1
+ldouble: 3
+
+Function: "acospi_towardzero":
+double: 1
+float: 2
+float128: 1
+ldouble: 3
+
+Function: "acospi_upward":
+double: 2
+float: 1
+float128: 2
+ldouble: 2
+
Function: "asin":
double: 1
float: 1