glibc/sysdeps/i386/i686
Adhemerval Zanella 8f170dc819 math: Use tanpif from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows better performance to the generic tanpif.

The code was adapted to glibc style and to use the definition of
math_config.h (to handle errno, overflow, and underflow).

Benchtest on x64_64 (Ryzen 9 5900X, gcc 14.2.1), aarch64 (Neoverse-N1,
gcc 13.3.1), and powerpc (POWER10, gcc 13.2.1):

latency                      master        patched   improvement
x86_64                      85.1683        47.7990        43.88%
x86_64v2                    76.8219        41.4679        46.02%
x86_64v3                    73.7775        37.7734        48.80%
aarch64 (Neoverse)          35.4514        18.0742        49.02%
power8                      22.7604        10.1054        55.60%
power10                     22.1358         9.9553        55.03%

reciprocal-throughput        master        patched   improvement
x86_64                      41.0174        19.4718        52.53%
x86_64v2                    34.8565        11.3761        67.36%
x86_64v3                    34.0325         9.6989        71.50%
aarch64 (Neoverse)          25.4349         9.2017        63.82%
power8                      13.8626         3.8486        72.24%
power10                     11.7933         3.6420        69.12%

Reviewed-by: DJ Delorie <dj@redhat.com>
2025-02-12 16:31:57 -03:00
..
fpu math: Use tanpif from CORE-MATH 2025-02-12 16:31:57 -03:00
multiarch Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
nptl Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
add_n.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-hash.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
isa.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Makefile
memcmp.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memcpy.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memmove.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mempcpy.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
memset.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
pthread_spin_trylock.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
strcmp.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00