glibc/sysdeps/s390
Adhemerval Zanella bccb0648ea math: Use tanf from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows better performance to the generic tanf.

The code was adapted to glibc style, to use the definition of
math_config.h, to remove errno handling, and to use a generic
128 bit routine for ABIs that do not support it natively.

Benchtest on x64_64 (Ryzen 9 5900X, gcc 14.2.1), aarch64 (neoverse1,
gcc 13.2.1), and powerpc (POWER10, gcc 13.2.1):

latency                       master       patched  improvement
x86_64                       82.3961       54.8052       33.49%
x86_64v2                     82.3415       54.8052       33.44%
x86_64v3                     69.3661       50.4864       27.22%
i686                         219.271       45.5396       79.23%
aarch64                      29.2127       19.1951       34.29%
power10                      19.5060       16.2760       16.56%

reciprocal-throughput         master       patched  improvement
x86_64                       28.3976       19.7334       30.51%
x86_64v2                     28.4568       19.7334       30.65%
x86_64v3                     21.1815       16.1811       23.61%
i686                         105.016       15.1426       85.58%
aarch64                      18.1573       10.7681       40.70%
power10                       8.7207        8.7097        0.13%

Signed-off-by: Alexei Sibidanov <sibid@uvic.ca>
Signed-off-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>
Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-22 10:52:27 -03:00
..
bits
fpu math: Use tanf from CORE-MATH 2024-11-22 10:52:27 -03:00
multiarch
nptl
s390-32
s390-64 s390x: Capture grep output in static PIE check 2024-06-20 14:34:06 +02:00
Implies
Makefile
Versions
abort-instr.h
asm-syntax.h
atomic-machine.h
configure Convert to autoconf 2.72 (vanilla release, no distribution patches) 2024-06-17 21:15:28 +02:00
configure.ac
cpu-features.c
cpu-features.h
dl-irel.h
dl-procinfo-s390.c elf: Remove platform strings in dl-procinfo.c 2024-06-18 10:45:36 +02:00
dl-procinfo.c
dl-procinfo.h elf: Remove HWCAP_IMPORTANT 2024-06-18 10:45:36 +02:00
dl-tls.h
dl-tunables.list
elf-initfini.h
fix-fp-int-convert-overflow.h
gccframe.h
gconv-modules-s390.conf
hp-timing.h
ifunc-memccpy.h
ifunc-memchr.h
ifunc-memcmp.h
ifunc-memcpy.h
ifunc-memmem.h
ifunc-memrchr.h
ifunc-memset.h
ifunc-rawmemchr.h
ifunc-stpcpy.h
ifunc-stpncpy.h
ifunc-strcat.h
ifunc-strchr.h
ifunc-strchrnul.h
ifunc-strcmp.h
ifunc-strcpy.h
ifunc-strcspn.h
ifunc-strlen.h
ifunc-strncat.h
ifunc-strncmp.h
ifunc-strncpy.h
ifunc-strnlen.h
ifunc-strpbrk.h
ifunc-strrchr.h
ifunc-strspn.h
ifunc-strstr.h
ifunc-wcpcpy.h
ifunc-wcpncpy.h
ifunc-wcscat.h
ifunc-wcschr.h
ifunc-wcschrnul.h
ifunc-wcscmp.h
ifunc-wcscpy.h
ifunc-wcscspn.h
ifunc-wcslen.h
ifunc-wcsncat.h
ifunc-wcsncmp.h
ifunc-wcsncpy.h
ifunc-wcsnlen.h
ifunc-wcspbrk.h
ifunc-wcsrchr.h
ifunc-wcsspn.h
ifunc-wmemchr.h
ifunc-wmemcmp.h
ifunc-wmemset.h
iso-8859-1_cp037_z900.c
jmpbuf-offsets.h
jmpbuf-unwind.h
ldsodefs.h
libc-start.c
libc-tls.c
linkmap.h
longjmp.c
machine-gmon.h
memccpy-c.c
memccpy-vx.S
memccpy.c
memchr-vx.S
memchr-z900.S
memchr.c
memcmp-z900.S
memcmp.c
memcopy.h
memcpy-z900.S
memcpy.c
memmem-arch13.S
memmem-c.c
memmem-vx.c
memmem.c
memmove-c.c
memmove.c
mempcpy.c
memrchr-c.c
memrchr-vx.S
memrchr.c
memset-z900.S
memset.c
preconfigure
rawmemchr-c.c
rawmemchr-vx.S
rawmemchr.c
sotruss-lib.c
stackinfo.h
stpcpy-c.c
stpcpy-vx.S
stpcpy.c
stpncpy-c.c
stpncpy-vx.S
stpncpy.c
strcat-c.c
strcat-vx.S
strcat.c
strchr-c.c
strchr-vx.S
strchr.c
strchrnul-c.c
strchrnul-vx.S
strchrnul.c
strcmp-vx.S
strcmp-z900.S
strcmp.c
strcpy-vx.S
strcpy-z900.S
strcpy.c
strcspn-c.c
strcspn-vx.S
strcspn.c
strlen-c.c
strlen-vx.S
strlen.c
strncat-c.c
strncat-vx.S
strncat.c
strncmp-c.c
strncmp-vx.S
strncmp.c
strncpy-vx.S
strncpy.c
strnlen-c.c
strnlen-vx.S
strnlen.c
strpbrk-c.c
strpbrk-vx.S
strpbrk.c
strrchr-c.c
strrchr-vx.S
strrchr.c
strspn-c.c
strspn-vx.S
strspn.c
strstr-arch13.S
strstr-c.c
strstr-vx.c
strstr.c
tst-dl-runtime-mod.S
tst-dl-runtime-profile-audit.c
tst-dl-runtime-profile-noaudit.c
tst-dl-runtime-resolve-audit.c
tst-dl-runtime-resolve-noaudit.c
tst-dl-runtime.c
unwind-arch.h
utf8-utf16-z9.c S390: Don't use r11 for cu-instructions as used as frame-pointer. [BZ# 32192] 2024-10-08 10:13:02 +02:00
utf8-utf32-z9.c S390: Don't use r11 for cu-instructions as used as frame-pointer. [BZ# 32192] 2024-10-08 10:13:02 +02:00
utf16-utf32-z9.c S390: Don't use r11 for cu-instructions as used as frame-pointer. [BZ# 32192] 2024-10-08 10:13:02 +02:00
wcpcpy-c.c
wcpcpy-vx.S
wcpcpy.c
wcpncpy-c.c
wcpncpy-vx.S
wcpncpy.c
wcscat-c.c
wcscat-vx.S
wcscat.c
wcschr-c.c
wcschr-vx.S
wcschr.c
wcschrnul-c.c
wcschrnul-vx.S
wcschrnul.c
wcscmp-c.c
wcscmp-vx.S
wcscmp.c
wcscpy-c.c
wcscpy-vx.S
wcscpy.c
wcscspn-c.c
wcscspn-vx.S
wcscspn.c
wcslen-c.c
wcslen-vx.S
wcslen.c
wcsncat-c.c
wcsncat-vx.S
wcsncat.c
wcsncmp-c.c
wcsncmp-vx.S s390x: Fix segfault in wcsncmp [BZ #31934] 2024-07-11 15:08:57 +02:00
wcsncmp.c
wcsncpy-c.c
wcsncpy-vx.S
wcsncpy.c
wcsnlen-c.c
wcsnlen-vx.S
wcsnlen.c
wcspbrk-c.c
wcspbrk-vx.S
wcspbrk.c
wcsrchr-c.c
wcsrchr-vx.S
wcsrchr.c
wcsspn-c.c
wcsspn-vx.S
wcsspn.c
wmemchr-c.c
wmemchr-vx.S
wmemchr.c
wmemcmp-c.c
wmemcmp-vx.S
wmemcmp.c
wmemset-c.c
wmemset-vx.S
wmemset.c