use __builtin_clzll instead of inline asm