mirror of git://sourceware.org/git/glibc.git
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> |
||
|---|---|---|
| .. | ||
| alphaev5 | ||
| alphaev6 | ||
| alphaev67 | ||
| bits | ||
| fpu | ||
| nptl | ||
| Implies | ||
| Makefile | ||
| Subdirs | ||
| Versions | ||
| __longjmp.S | ||
| _mcount.S | ||
| add_n.S | ||
| addmul_1.S | ||
| atomic-machine.h | ||
| bsd-_setjmp.S | ||
| bsd-setjmp.S | ||
| configure | ||
| configure.ac | ||
| crti.S | ||
| crtn.S | ||
| div.S | ||
| div_libc.h | ||
| divl.S | ||
| divlu.S | ||
| divq.S | ||
| divqu.S | ||
| dl-dtprocnum.h | ||
| dl-machine.h | ||
| dl-procinfo.h | ||
| dl-tls.h | ||
| dl-trampoline.S | ||
| e_sqrtl.c | ||
| elf-initfini.h | ||
| gccframe.h | ||
| hp-timing.h | ||
| jmpbuf-offsets.h | ||
| jmpbuf-unwind.h | ||
| ldiv.S | ||
| ldsodefs.h | ||
| libc-tls.c | ||
| lldiv.S | ||
| local-soft-fp.h | ||
| lshift.S | ||
| machine-gmon.h | ||
| math-use-builtins-ffs.h | ||
| memchr.c | ||
| memset.S | ||
| mul_1.S | ||
| nscd-types.h | ||
| ots_add.c | ||
| ots_cmp.c | ||
| ots_cmpe.c | ||
| ots_cvtqux.c | ||
| ots_cvtqx.c | ||
| ots_cvttx.c | ||
| ots_cvtxq.c | ||
| ots_cvtxt.c | ||
| ots_div.c | ||
| ots_mul.c | ||
| ots_nintxq.c | ||
| ots_sub.c | ||
| preconfigure | ||
| rawmemchr.S | ||
| reml.S | ||
| remlu.S | ||
| remq.S | ||
| remqu.S | ||
| rshift.S | ||
| setjmp.S | ||
| sfp-machine.h | ||
| sotruss-lib.c | ||
| stackinfo.h | ||
| start.S | ||
| stpcpy.S | ||
| stpncpy.S | ||
| strcat.S | ||
| strchr.S | ||
| strcmp.S | ||
| strcpy.S | ||
| string-fza.h | ||
| string-fzb.h | ||
| string-fzi.h | ||
| string-shift.h | ||
| strlen.S | ||
| strncat.S | ||
| strncpy.S | ||
| strrchr.S | ||
| stxcpy.S | ||
| stxncpy.S | ||
| sub_n.S | ||
| submul_1.S | ||
| tininess.h | ||
| tst-audit.h | ||
| tst-file-align.h | ||
| udiv_qrnnd.S | ||
| unwind-arch.h | ||