]> git.ipfire.org Git - thirdparty/glibc.git/commit
aarch/fpu: use generic builtins based math functions
authorVineet Gupta <vgupta@synopsys.com>
Fri, 29 May 2020 23:06:59 +0000 (16:06 -0700)
committerVineet Gupta <vgupta@synopsys.com>
Wed, 3 Jun 2020 17:23:33 +0000 (10:23 -0700)
commitc9feb1be938c3b259ece1a07ef78ddcf89194f31
treef3298924e8a4c0d66672e01218f3fd9813ae0cce
parent628d90c5f97b6f0f8b79a079b682febb1f486a38
aarch/fpu: use generic builtins based math functions

introduce sysdep header math-use-builtins.h to replace aarch64
implementations with corresponding generic ones.

 - newly inroduced generic sqrt{,f}, fma{,f}
 - existing floor{,f}, nearbyint{,f}, rint{,f}, round{,f}, trunc{,f}
 - Note that generic copysign was already enabled (via generic
   math-use-builtins.h) now thru sysdep header

Tested with build-many-glibcs for aarch64-linux-gnu

This is a non functional change and aarch64 libm before/after was
byte invariant as compared below:

| cd /SCRATCH/vgupta/gnu/install-glibc-A-baseline
| for i in `find . -name libm-2.31.9000.so`; do
|   echo $i; diff $i /SCRATCH/vgupta/gnu/install-glibc-C-reduce-scope/$i ;
|   echo $?;
| done

| ./aarch64-linux-gnu/lib64/libm-2.31.9000.so
| 0
| ./arm-linux-gnueabi/lib/libm-2.31.9000.so
| 0
| ./x86_64-linux-gnu/lib64/libm-2.31.9000.so
| 0
| ./arm-linux-gnueabihf/lib/libm-2.31.9000.so
| 0
| ./riscv64-linux-gnu-rv64imac-lp64/lib64/lp64/libm-2.31.9000.so
| 0
| ./riscv64-linux-gnu-rv64imafdc-lp64/lib64/lp64/libm-2.31.9000.so
| 0
| ./powerpc-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./microblaze-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./nios2-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./hppa-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./s390x-linux-gnu/lib64/libm-2.31.9000.so
| 0

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
15 files changed:
sysdeps/aarch64/fpu/e_sqrt.c [deleted file]
sysdeps/aarch64/fpu/e_sqrtf.c [deleted file]
sysdeps/aarch64/fpu/math-use-builtins.h [new file with mode: 0644]
sysdeps/aarch64/fpu/s_floor.c [deleted file]
sysdeps/aarch64/fpu/s_floorf.c [deleted file]
sysdeps/aarch64/fpu/s_fma.c [deleted file]
sysdeps/aarch64/fpu/s_fmaf.c [deleted file]
sysdeps/aarch64/fpu/s_nearbyint.c [deleted file]
sysdeps/aarch64/fpu/s_nearbyintf.c [deleted file]
sysdeps/aarch64/fpu/s_rint.c [deleted file]
sysdeps/aarch64/fpu/s_rintf.c [deleted file]
sysdeps/aarch64/fpu/s_round.c [deleted file]
sysdeps/aarch64/fpu/s_roundf.c [deleted file]
sysdeps/aarch64/fpu/s_trunc.c [deleted file]
sysdeps/aarch64/fpu/s_truncf.c [deleted file]