93dc2d
commit 217b84127b3a6590afcc7e198e6c3f665935e8f4
93dc2d
Author: Wilco Dijkstra <wdijkstr@arm.com>
93dc2d
Date:   Thu Jan 6 14:36:28 2022 +0000
93dc2d
93dc2d
    AArch64: Check for SVE in ifuncs [BZ #28744]
93dc2d
    
93dc2d
    Add a check for SVE in the A64FX ifuncs for memcpy, memset and memmove.
93dc2d
    This fixes BZ #28744.
93dc2d
    
93dc2d
    (cherry picked from commit e5fa62b8db546f8792ec9e5c61e6419f4f8e3f4d)
93dc2d
93dc2d
diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
93dc2d
index 25e0081eeb51727c..b6703af44b3f1a3d 100644
93dc2d
--- a/sysdeps/aarch64/multiarch/memcpy.c
93dc2d
+++ b/sysdeps/aarch64/multiarch/memcpy.c
93dc2d
@@ -48,7 +48,7 @@ libc_ifunc (__libc_memcpy,
93dc2d
 		      || IS_NEOVERSE_V1 (midr)
93dc2d
 		      ? __memcpy_simd
93dc2d
 # if HAVE_AARCH64_SVE_ASM
93dc2d
-		     : (IS_A64FX (midr)
93dc2d
+		     : (IS_A64FX (midr) && sve
93dc2d
 			? __memcpy_a64fx
93dc2d
 			: __memcpy_generic))))));
93dc2d
 # else
93dc2d
diff --git a/sysdeps/aarch64/multiarch/memmove.c b/sysdeps/aarch64/multiarch/memmove.c
93dc2d
index d0adefc547f60030..d2339ff34ff7b3e5 100644
93dc2d
--- a/sysdeps/aarch64/multiarch/memmove.c
93dc2d
+++ b/sysdeps/aarch64/multiarch/memmove.c
93dc2d
@@ -48,7 +48,7 @@ libc_ifunc (__libc_memmove,
93dc2d
 		      || IS_NEOVERSE_V1 (midr)
93dc2d
 		      ? __memmove_simd
93dc2d
 # if HAVE_AARCH64_SVE_ASM
93dc2d
-		     : (IS_A64FX (midr)
93dc2d
+		     : (IS_A64FX (midr) && sve
93dc2d
 			? __memmove_a64fx
93dc2d
 			: __memmove_generic))))));
93dc2d
 # else
93dc2d
diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
93dc2d
index d7d9bbbda095e051..3d839bc02e96380d 100644
93dc2d
--- a/sysdeps/aarch64/multiarch/memset.c
93dc2d
+++ b/sysdeps/aarch64/multiarch/memset.c
93dc2d
@@ -44,7 +44,7 @@ libc_ifunc (__libc_memset,
93dc2d
 	      : (IS_EMAG (midr) && zva_size == 64
93dc2d
 		? __memset_emag
93dc2d
 # if HAVE_AARCH64_SVE_ASM
93dc2d
-		: (IS_A64FX (midr)
93dc2d
+		: (IS_A64FX (midr) && sve
93dc2d
 		  ? __memset_a64fx
93dc2d
 		  : __memset_generic))));
93dc2d
 # else