int__builtin_ctz(unsigned int x){ unsigned int r; if(x == 0) return 32; for(r = 0; (x & 1) == 0; x >>= 1, r++); return r;} int__builtin_clz(unsigned int x){ unsigned int r; if(x == 0) return 32; for(r = 0; (x & (1UL<<31)) == 0; x <<= 1, r++); return r;} int__builtin_clzll(unsigned long long x){ unsigned long long r; if(x == 0) return 64; for(r = 0; (x & (1ULL<<63)) == 0; x <<= 1, r++); return r;}
int
__builtin_ctz(unsigned int x)
{
unsigned int r;
if(x == 0)
return 32;
for(r = 0; (x & 1) == 0; x >>= 1, r++);
return r;
}
int
__builtin_clz(unsigned int x)
{
unsigned int r;
if(x == 0)
return 32;
for(r = 0; (x & (1UL<<31)) == 0; x <<= 1, r++);
return r;
}
int
__builtin_clzll(unsigned long long x)
{
unsigned long long r;
if(x == 0)
return 64;
for(r = 0; (x & (1ULL<<63)) == 0; x <<= 1, r++);
return r;
}