cプログラムの使用:
int main(int argc , char** argv)
{
return __builtin_popcountll(0xf0f0f0f0f0f0f0f0);
}
およびコンパイラライン(gcc 4.4-Intel Xeon L3426):
gcc -msse4.2 poptest.c -o poptest
組み込みのpopcnt命令を取得せず、コンパイラがルックアップテーブルを生成し、その方法でポップカウントを計算します。結果のバイナリは8000バイトを超えます。(ユク!)
助けてくれてありがとう。