glibc/sysdeps/aarch64
Paul Zimmermann 392b3f0971 replace tgammaf by the CORE-MATH implementation
The CORE-MATH implementation is correctly rounded (for any rounding mode).
This can be checked by exhaustive tests in a few minutes since there are
less than 2^32 values to check against for example GNU MPFR.
This patch also adds some bench values for tgammaf.

Tested on x86_64 and x86 (cfarm26).

With the initial GNU libc code it gave on an Intel(R) Core(TM) i7-8700:

      "tgammaf": {
       "": {
        "duration": 3.50188e+09,
        "iterations": 2e+07,
        "max": 602.891,
        "min": 65.1415,
        "mean": 175.094
       }
      }

With the new code:

      "tgammaf": {
       "": {
        "duration": 3.30825e+09,
        "iterations": 5e+07,
        "max": 211.592,
        "min": 32.0325,
        "mean": 66.1649
       }
      }

With the initial GNU libc code it gave on cfarm26 (i686):

  "tgammaf": {
   "": {
    "duration": 3.70505e+09,
    "iterations": 6e+06,
    "max": 2420.23,
    "min": 243.154,
    "mean": 617.509
   }
  }

With the new code:

  "tgammaf": {
   "": {
    "duration": 3.24497e+09,
    "iterations": 1.8e+07,
    "max": 1238.15,
    "min": 101.155,
    "mean": 180.276
   }
  }

Signed-off-by: Alexei Sibidanov <sibid@uvic.ca>
Signed-off-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>

Changes in v2:
    - include <math.h> (fix the linknamespace failures)
    - restored original benchtests/strcoll-inputs/filelist#en_US.UTF-8 file
    - restored original wrapper code (math/w_tgammaf_compat.c),
      except for the dealing with the sign
    - removed the tgammaf/float entries in all libm-test-ulps files
    - address other comments from Joseph Myers
      (https://sourceware.org/pipermail/libc-alpha/2024-July/158736.html)

Changes in v3:
    - pass NULL argument for signgam from w_tgammaf_compat.c
    - use of math_narrow_eval
    - added more comments

Changes in v4:
    - initialize local_signgam to 0 in math/w_tgamma_template.c
    - replace sysdeps/ieee754/dbl-64/gamma_productf.c by dummy file

Changes in v5:
    - do not mention local_signgam any more in math/w_tgammaf_compat.c
    - initialize local_signgam to 1 instead of 0 in w_tgamma_template.c
      and added comment

Changes in v6:
    - pass NULL as 2nd argument of __ieee754_gammaf_r in
      w_tgammaf_compat.c, and check for NULL in e_gammaf_r.c

Changes in v7:
    - added Signed-off-by line for Alexei Sibidanov (author of the code)

Changes in v8:
    - added Signed-off-by line for Paul Zimmermann (submitted of the patch)

Changes in v9:
    - address comments from review by Adhemerval Zanella
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2024-10-11 11:12:32 +02:00
..
bits Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
fpu AArch64: Simplify rounding-multiply pattern in several AdvSIMD routines 2024-09-23 15:44:08 +01:00
multiarch AArch64: Remove memset-reg.h 2024-09-10 14:18:03 +01:00
nptl Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sys Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
__arm_za_disable.S aarch64: Add SME runtime support 2024-01-02 15:43:30 +00:00
__longjmp.S aarch64: Add longjmp support for SME 2024-01-02 15:43:30 +00:00
__mtag_tag_region.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
__mtag_tag_zero_region.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
abort-instr.h Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
atomic-machine.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
bsd-_setjmp.c aarch64: Rename place holder .S files to .c 2020-07-08 15:02:37 +01:00
bsd-setjmp.c aarch64: Rename place holder .S files to .c 2020-07-08 15:02:37 +01:00
configure Convert to autoconf 2.72 (vanilla release, no distribution patches) 2024-06-17 21:15:28 +02:00
configure.ac aarch64: fix check for SVE support in assembler 2024-03-14 14:27:56 +00:00
cpu-features.h Aarch64: Add memcpy for qualcomm's oryon-1 core 2024-06-30 13:46:33 +02:00
crti.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
crtn.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-audit-check.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-bti.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-diagnostics-cpu.c aarch64: Enhanced CPU diagnostics for ld.so 2024-04-08 16:48:55 +02:00
dl-dtprocnum.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-irel.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-link.sym elf: Fix runtime linker auditing on aarch64 (BZ #26643) 2022-02-01 14:49:46 -03:00
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-machine.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-prop.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-start.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tls.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tlsdesc.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tlsdesc.S aarch64: Remove ld.so __tls_get_addr plt usage 2024-04-04 17:02:32 -03:00
dl-trampoline.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-tunables.list Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_sqrtl.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Implies Remove dbl-64/wordsize-64 (part 2) 2021-01-07 15:26:26 +00:00
jmpbuf-offsets.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
libc-mtag.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
libc-start.c aarch64: Make cpu-features definitions not Linux-specific 2024-01-04 23:48:54 +01:00
libc-tls.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
libm-test-ulps replace tgammaf by the CORE-MATH implementation 2024-10-11 11:12:32 +02:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
linkmap.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
machine-gmon.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Makefile aarch64: Add longjmp test for SME 2024-01-02 16:54:21 +00:00
math-tests-trap.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
math-use-builtins-ffs.h string: Use builtins for ffs and ffsll 2024-02-01 09:31:33 -03:00
mcount.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove.c aarch64: Rename place holder .S files to .c 2020-07-08 15:02:37 +01:00
memrchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset.S AArch64: Remove memset-reg.h 2024-09-10 14:18:03 +01:00
preconfigure elf: Enable TLS descriptor tests on aarch64 2024-03-19 14:53:30 -03:00
rawmemchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-global-offsets.sym aarch64: Add SME runtime support 2024-01-02 15:43:30 +00:00
setjmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sfp-machine.h Break more lines before not after operators. 2019-02-25 13:19:19 +00:00
sotruss-lib.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
stackinfo.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
start.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
stpcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchrnul.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strlen.S AArch64: Improve generic strlen 2024-08-07 14:58:46 +01:00
strncmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strnlen.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strrchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sysdep.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tlsdesc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tlsdesc.sym aarch64: Use explicit offsets in _dl_tlsdesc_dynamic 2016-12-02 16:52:57 +01:00
tst-audit26.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit26mod.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit26mod.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit27.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit27mod.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit27mod.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-audit.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-auditmod26.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-auditmod27.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-ifunc-arg-1.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-ifunc-arg-2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-sme-jmp.c aarch64: Add longjmp test for SME 2024-01-02 16:54:21 +00:00
tst-vpcs-mod.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-vpcs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Versions Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
wordcopy.c aarch64: Don't build wordcopy 2022-10-28 11:14:54 +01:00