diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2019-03-18 20:18:49 +0000 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2019-07-08 17:22:22 -0300 |
commit | 931c616eedc303d48fdd3b05bc063b354a133c74 (patch) | |
tree | e820e2f8c8e7d7d9e0120e147643995b4ed62790 /ChangeLog | |
parent | 69461d989669d3da051a2bfdae8d5b0ff3dc0749 (diff) | |
download | glibc-931c616eedc303d48fdd3b05bc063b354a133c74.tar.gz glibc-931c616eedc303d48fdd3b05bc063b354a133c74.tar.xz glibc-931c616eedc303d48fdd3b05bc063b354a133c74.zip |
powerpc: Refactor modf{f}
The modf{f} optimization is not an optimization for ISA 2.07+. This patch move the IFUNC for powerpc64 only, move the power5+ to generic location, and include the generic implementation for ISA 2.07+. The performance changes are based on modf benchtests: * POWER9 - ppc64 "modf": { "": { "duration": 4.97057e+09, "iterations": 1.00688e+09, "max": 28.76, "min": 4.912, "mean": 4.9366 } } * POWER9 - power5+ "modf": { "": { "duration": 4.98291e+09, "iterations": 9.32818e+08, "max": 15.058, "min": 5.107, "mean": 5.34178 } } * POWER8 - ppc64 "modf": { "": { "duration": 5.05329e+09, "iterations": 8.38814e+08, "max": 518.051, "min": 5.79, "mean": 6.02433 } } * POWER8 - power5+ "modf": { "": { "duration": 5.05573e+09, "iterations": 8.35254e+08, "max": 63.141, "min": 5.873, "mean": 6.05293 } } * POWER7 - ppc64 "modf": { "": { "duration": 4.89818e+09, "iterations": 1.08408e+09, "max": 57.556, "min": 3.953, "mean": 4.51827 } } * POWER7 - power5+ "modf": { "": { "duration": 4.83789e+09, "iterations": 1.33409e+09, "max": 46.608, "min": 2.224, "mean": 3.62636 } } 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/power5+/fpu/s_modf.c: Move to ... * sysdeps/powerpc/fpu/s_modf.c: ... here. Add ISA 2.07 optimization. * sysdeps/powerpc/power5+/fpu/s_modff.c: Move to ... * sysdeps/powerpc/fpu/s_modff.c: ... here. Add ISA 2.07 optimization. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c: Adjust include. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c: Likewise. * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile (sysdep_calls, sysdep_routines): Add s_modf* objects. (CFLAGS-s_modf-power5+.c, CFLAGS-s_modff-power5+.c, CFLAGS-s_modf-ppc64.c, CFLAGS-s_modff-ppc64.c): New rule. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c: Move to ... * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c: ... here. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c: Movo to ... * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c: Move ... here. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Move to ... * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c: ... here. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c: Move to ... * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c: ... here. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-ppc64.c: Move to ... * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c: ... here. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c: Move to ... * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c: ... here. Reviewed-by: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 0b2d80ffcc..a9aefa6e2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,37 @@ 2019-07-08 Adhemerval Zanella <adhemerval.zanella@linaro.org> + * sysdeps/powerpc/power5+/fpu/s_modf.c: Move to ... + * sysdeps/powerpc/fpu/s_modf.c: ... here. Add ISA 2.07 optimization. + * sysdeps/powerpc/power5+/fpu/s_modff.c: Move to ... + * sysdeps/powerpc/fpu/s_modff.c: ... here. Add ISA 2.07 optimization. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c: + Adjust include. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c: + Likewise. + * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile (sysdep_calls, + sysdep_routines): Add s_modf* objects. + (CFLAGS-s_modf-power5+.c, CFLAGS-s_modff-power5+.c, + CFLAGS-s_modf-ppc64.c, CFLAGS-s_modff-ppc64.c): New rule. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c: Move + to ... + * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c: + ... here. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c: Movo + to ... + * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c: Move + ... here. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Move to ... + * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c: ... here. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c: Move + to ... + * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c: + ... here. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-ppc64.c: Move to ... + * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c: + ... here. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c: Move to ... + * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c: ... here. + * sysdeps/powerpc/fpu/e_hypot.c (two60, two500, two600, two1022, twoM500, twoM600, two60factor, pdnum): Remove. (TEST_INFO_NAN, GET_TW0_HIGH_WORD): Remove macro. |