64ビット整数の3の剰余を分岐も乗算使わずにハイパー高速に求めるアルゴリズム

n ^= n >> 32;
n ^= n >> 16;
n ^= n >> 8;
n ^= n >> 4;
n ^= n >> 2;
n &= 3;
n ^= ((n&1) << 1) | (n >> 1);

後半はLUT使ったほうが速いかもな