static inline int
popcount32 (unsigned int x)
{
- x = ((x & 0xaaaaaaaa) >> 1) + (x & 0x55555555);
- x = ((x & 0xcccccccc) >> 2) + (x & 0x33333333);
- x = ((x & 0xf0f0f0f0) >> 4) + (x & 0x0f0f0f0f);
- x = ((x & 0xff00ff00) >> 8) + (x & 0x00ff00ff);
- return (x >> 16) + (x & 0xff);
+ x = ((x & 0xaaaaaaaaU) >> 1) + (x & 0x55555555U);
+ x = ((x & 0xccccccccU) >> 2) + (x & 0x33333333U);
+ x = (x >> 16) + (x & 0xffff);
+ x = ((x & 0xf0f0) >> 4) + (x & 0x0f0f);
+ return (x >> 8) + (x & 0x00ff);
}
#endif