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