ref: 4398b8f2f9457a38c80c5a5493b2fc83543a9332
dir: /popcount.c/
#include "platform.h"
uint32_t
__builtin_popcount(uint32_t b)
{
b = b - ((b>>1)&0x55555555);
b = ((b>>2)&0x33333333) + (b&0x33333333);
b = ((b>>4)+b)&0x0f0f0f0f;
b += (b>>8);
b += (b>>16);
return b & 0x3f;
}