VC++2008で動作確認した。
#include <intrin.h>
unsigned __int64 i64 = 222482;
unsigned __int64 count = __popcnt64( i64 );
Core i7だとcountに結果が入る。Core 2だと__popcnt64の部分でエラー発生。
速度とかは計測してない。てか、特定CPUでしか動かないんだと使いづらいので、使うかどうか検討中。
ついでに、CPUのPOPCNT命令を使ってるのか、それともソフトウェア的に処理をしているのかも未検証。