Hello, again,

Today, I found that it would be a bit serious with Clang 17.

Niels Möller <ni...@lysator.liu.se> wrote:
> even if 32-bit x86 is not a high priority these days

I was not clear enough.  It's not only for 32-bit Intel with MSVC, but
also for 64-bit Intel with MSVC, as well as ARM and ARM64 with MSVC.

Well, for this case, it's not that serious as it's only a conditional
jump.

                        *       *       *

I checked other compilers today.

With Clang 17, the entire loop is skipped when CND == 0 (64-bit Intel,
32-bit Intel, 64-bit ARM, 32-bit ARM, etc.).  For 64-bit
Intel, here is the result:

        x86-64 clang 17.0.1:
        https://godbolt.org/z/6cYcn6Y1b

This would be a bit serious.

With GCC 13.2, access to 'ap[i]' may be conditionally executed for some
architectures (64-bit Intel, 32-bit Intel, etc., but not for 64-bit ARM
and 32-bit ARM), instead of accessed _and_ masked.  For 64-bit Intel,
here is the result:

        x86-64 gcc 13.2:
        https://godbolt.org/z/6En8M5GTz

This may affect the cache access pattern.

(We can use '-O3 -m32' to see code for 32-bit Intel.)
-- 
_______________________________________________
nettle-bugs mailing list -- nettle-bugs@lists.lysator.liu.se
To unsubscribe send an email to nettle-bugs-le...@lists.lysator.liu.se

Reply via email to