AArch64: Check for SVE in ifuncs [BZ #28744]
authorWilco Dijkstra <wdijkstr@arm.com>
Thu, 6 Jan 2022 14:36:28 +0000 (14:36 +0000)
committerWilco Dijkstra <wdijkstr@arm.com>
Thu, 6 Jan 2022 14:36:28 +0000 (14:36 +0000)
Add a check for SVE in the A64FX ifuncs for memcpy, memset and memmove.
This fixes BZ #28744.

sysdeps/aarch64/multiarch/memcpy.c
sysdeps/aarch64/multiarch/memmove.c
sysdeps/aarch64/multiarch/memset.c

index 7dac7b7..a476dd5 100644 (file)
@@ -48,7 +48,7 @@ libc_ifunc (__libc_memcpy,
                      || IS_NEOVERSE_V1 (midr)
                      ? __memcpy_simd
 # if HAVE_AARCH64_SVE_ASM
-                    : (IS_A64FX (midr)
+                    : (IS_A64FX (midr) && sve
                        ? __memcpy_a64fx
                        : __memcpy_generic))))));
 # else
index 48f8e46..4f7d7ee 100644 (file)
@@ -48,7 +48,7 @@ libc_ifunc (__libc_memmove,
                      || IS_NEOVERSE_V1 (midr)
                      ? __memmove_simd
 # if HAVE_AARCH64_SVE_ASM
-                    : (IS_A64FX (midr)
+                    : (IS_A64FX (midr) && sve
                        ? __memmove_a64fx
                        : __memmove_generic))))));
 # else
index 3692b07..c4008f3 100644 (file)
@@ -44,7 +44,7 @@ libc_ifunc (__libc_memset,
              : (IS_EMAG (midr) && zva_size == 64
                ? __memset_emag
 # if HAVE_AARCH64_SVE_ASM
-               : (IS_A64FX (midr)
+               : (IS_A64FX (midr) && sve
                  ? __memset_a64fx
                  : __memset_generic))));
 # else