On 2025-06-01 15:46, Adam D. Barratt wrote:
> On Thu, 2025-05-29 at 15:41 +0200, Aurelien Jarno wrote:
> >   - Add an SVE implementation of memset on aarch64.
> > 
> > => This improves the performances of memset by up to 20% on arm64
> > hardware with SVE support. This change is in trixie/sid for more than
> > 2 months.
> > 
> >   - Improve generic implementation of memset on aarch64.
> > 
> > => This improves the performances of memset by up to 24% on arm64
> > hardware by avoiding branches and using overlapping store. This
> > change is in trixie/sid for more than 2 months.
> 
> Unfortunately one or other of the above changes (I'm guessing the
> first) is causing a build failure on arm64:
> 
> ../sysdeps/aarch64/multiarch/memset.c: In function ‘select_memset_ifunc’:
> ../sysdeps/aarch64/multiarch/memset.c:52:11: error: ‘prefer_sve_ifuncs’ 
> undeclared (first use in this function)
>    52 |       if (prefer_sve_ifuncs && zva_size == 64)
>       |           ^~~~~~~~~~~~~~~~~
> ../sysdeps/aarch64/multiarch/memset.c:52:11: note: each undeclared identifier 
> is reported only once for each function it appears in

Oops I missed that we revert the prefer_sve_ifuncs definition due to 
#1083095. This means we also need to revert this:

commit 4f3b4e7b52b14dcc4633f319bd4087af76674ae6
Author: Wilco Dijkstra <wilco.dijks...@arm.com>
Date:   Thu Feb 27 16:28:52 2025 +0000

    AArch64: Use prefer_sve_ifuncs for SVE memset
    
    Use prefer_sve_ifuncs for SVE memset just like memcpy.
    
    Reviewed-by: Yury Khrustalev <yury.khrusta...@arm.com>
    (cherry picked from commit 0f044be1dae5169d0e57f8d487b427863aeadab4)

diff --git a/sysdeps/aarch64/multiarch/memset.c 
b/sysdeps/aarch64/multiarch/memset.c
index d5b7665949..6c9bb910c6 100644
--- a/sysdeps/aarch64/multiarch/memset.c
+++ b/sysdeps/aarch64/multiarch/memset.c
@@ -49,7 +49,7 @@ select_memset_ifunc (void)
       if (IS_A64FX (midr) && zva_size == 256)
        return __memset_a64fx;
 
-      if (zva_size == 64)
+      if (prefer_sve_ifuncs && zva_size == 64)
        return __memset_sve_zva64;
     }


I'll work on an update, this time after more testing.

Regards
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurel...@aurel32.net                     http://aurel32.net

Reply via email to