Who cares about performance (or Intel's CPU errata)?
Stefan Kanthak
stefan.kanthak@nexgo.de
Sat May 27 21:20:20 GMT 2023
Just to show how SLOPPY, INCONSEQUENTIAL and INCOMPETENT GCC's developers are:
--- dontcare.c ---
int ispowerof2(unsigned __int128 argument) {
return __builtin_popcountll(argument) + __builtin_popcountll(argument >> 64) == 1;
}
--- EOF ---
GCC 13.3 gcc -march=haswell -O3
https://gcc.godbolt.org/z/PPzYsPzMc
ispowerof2(unsigned __int128):
popcnt rdi, rdi
popcnt rsi, rsi
add esi, edi
xor eax, eax
cmp esi, 1
sete al
ret
OOPS: what about Intel's CPU errata regarding the false dependency on POPCNTs output?
See https://gcc.godbolt.org/z/jdjTc3EET for comparison!
FIX YOUR BUGS, KIDS!
Stefan
More information about the Gcc
mailing list