4 #ifdef HAS_NATIVE_POPCOUNT
5 static inline unsigned int popcount(pb n){
6 asm ("popcnt %1, %0" : "=r" (n) : "0" (n));
10 static inline unsigned int popcount8(pb n) {
11 return popcount(n & 0xff);
16 static unsigned int popcount8(pb x)
20 r = ((r & 0xaa)>>1) + (r & 0x55);
21 r = ((r & 0xcc)>>2) + (r & 0x33);
22 r = ((r>>4) + r) & 0x0f;
26 static inline unsigned int
32 x = (x & m2) + ((x >> 2) & m2) + ((x >> 4) & m2);
34 return (x + (x >> 12) + (x >> 24)) & 0x3f;