diff options
author | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-02-17 10:44:08 -0600 |
---|---|---|
committer | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-02-27 12:58:33 -0600 |
commit | fe13a20c37578f08ce393ccaeb45caeb48815ca5 (patch) | |
tree | 62a09dac1baf2a1caf2e8b346733645cc596340f /sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c | |
parent | 1ad8950a3ea4056ed343d681b5146f4b4aa27e10 (diff) | |
download | glibc-fe13a20c37578f08ce393ccaeb45caeb48815ca5.tar.gz glibc-fe13a20c37578f08ce393ccaeb45caeb48815ca5.tar.xz glibc-fe13a20c37578f08ce393ccaeb45caeb48815ca5.zip |
PowerPC: llround/llroundf POWER8 optimization
This patch add a optimized llround/llroundf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c')
-rw-r--r-- | sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c index a4d1bf3a2a..7dba17e96e 100644 --- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c +++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c @@ -27,12 +27,15 @@ extern __typeof (__llround) __llround_ppc64 attribute_hidden; extern __typeof (__llround) __llround_power5plus attribute_hidden; extern __typeof (__llround) __llround_power6x attribute_hidden; +extern __typeof (__llround) __llround_power8 attribute_hidden; libc_ifunc (__llround, - (hwcap & PPC_FEATURE_POWER6_EXT) - ? __llround_power6x : - (hwcap & PPC_FEATURE_POWER5_PLUS) - ? __llround_power5plus + (hwcap2 & PPC_FEATURE2_ARCH_2_07) + ? __llround_power8 : + (hwcap & PPC_FEATURE_POWER6_EXT) + ? __llround_power6x : + (hwcap & PPC_FEATURE_POWER5_PLUS) + ? __llround_power5plus : __llround_ppc64); weak_alias (__llround, llround) |