Yakk , gcc
128 . , x86-64,
Intel Haswell , :
#include <immintrin.h>
#include <stdint.h>
inline int lzcnt_u128 (unsigned __int128 u) {
uint64_t hi = u>>64;
uint64_t lo = u;
lo = (hi == 0) ? lo : -1ULL;
return _lzcnt_u64(hi) + _lzcnt_u64(lo);
}
_lzcnt_u64 (gcc 5.4) lzcnt,
( 64), gcc __builtin_clzll().
cmove.