powerpc: Use generic e_expf

System Internals / glibc - Adhemerval Zanella [linaro.org] - 26 June 2019 17:33 EDT

Generic implementation is faster on both power8 and power9:

POWER9:- sysdeps/ieee754/flt-32/e_expf.c "expf": { "workload-spec2017.wrf": { "duration": 5.1236e+09, "iterations": 7.53344e+08, "reciprocal-throughput": 5.9436, "latency": 7.65869, "max-throughput": 1.68248e+08, "min-throughput": 1.30571e+08 } }

- sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S "expf": { "workload-spec2017.wrf": { "duration": 5.14429e+09, "iterations": 5.29248e+08, "reciprocal-throughput": 8.05372, "latency": 11.3863, "max-throughput": 1.24166e+08, "min-throughput": 8.78249e+07 } }

Checked on powerpc-linux-gnu (built without --with-cpu, with--with-cpu=power4 and with --with-cpu=power5+ and --disable-multi-arch), powerpc64-linux-gnu (built without --with-cp and with --with-cpu=power5+ and --disable-multi-arch).

- sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (libm-sysdep_routines): Remove e_expf-power8 and expf-ppc64.
- sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S: Remove file.
- sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Likewise.
- sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c: Likewise.
- sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: Likewise.
- sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S: Likewise.
- sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c: Likewise.

aa32f5bf0c powerpc: Use generic e_expf
ChangeLog | 10 +
sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile | 1 -
.../powerpc64/fpu/multiarch/e_expf-power8.S | 24 --
.../powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c | 21 --
sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c | 32 ---
sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c | 1 -
sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S | 303 ---------------------
sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c | 1 -
8 files changed, 10 insertions(+), 383 deletions(-)

Upstream: sourceware.org


  • Share