about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@ozlabs.org>2021-07-27 15:47:51 +1000
committerTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>2021-08-06 16:10:08 -0300
commit60b4dd25790342b40e8942e3a4115f511a6b6911 (patch)
tree3e2684b2432e8fe0ff9f65fa66cb238112309a0b /sysdeps/powerpc/powerpc64/multiarch/memcpy.c
parentf2a15dd668913c5a1388ba7e1131b25162b2ea75 (diff)
downloadglibc-60b4dd25790342b40e8942e3a4115f511a6b6911.tar.gz
glibc-60b4dd25790342b40e8942e3a4115f511a6b6911.tar.xz
glibc-60b4dd25790342b40e8942e3a4115f511a6b6911.zip
powerpc64: Add checks for Altivec and VSX in ifunc selection
We'd like to support processors without Altivec or VSX, so check
the relevant hwcap bits before selecting them.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Diffstat (limited to 'sysdeps/powerpc/powerpc64/multiarch/memcpy.c')
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
index 53ab32ef26..684ee064f2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
@@ -45,9 +45,12 @@ libc_ifunc (__libc_memcpy,
 	    (hwcap2 & PPC_FEATURE2_ARCH_3_1 && hwcap & PPC_FEATURE_HAS_VSX)
 	    ? __memcpy_power10 :
 # endif
-	    ((hwcap2 & PPC_FEATURE2_ARCH_2_07) && use_cached_memopt)
+	    (hwcap2 & PPC_FEATURE2_ARCH_2_07
+	     && hwcap & PPC_FEATURE_HAS_ALTIVEC
+	     && use_cached_memopt)
 	    ? __memcpy_power8_cached :
-	      (hwcap & PPC_FEATURE_HAS_VSX)
+	      (hwcap & PPC_FEATURE_ARCH_2_06
+	       && hwcap & PPC_FEATURE_HAS_ALTIVEC)
 	      ? __memcpy_power7 :
 		(hwcap & PPC_FEATURE_ARCH_2_06)
 		? __memcpy_a2 :