組み込みの高速 CPU 命令を実行したいコードがありますpopcnt
( withまたは__builtin_popcountll
などの適切なフラグを使用してコンパイルすると、これが発生します)が、CPU がサポートしていないことが明らかになったときにコードにフォールバックすることもできます。ハードウェア命令。g++ -mpopcnt
clang++ -march=corei7
cpuid
もちろん、コンパイラの人々が正しく実装したと私が信頼するフォールバック コードを取得するには (そのため、popcount を実行するために C または asm コードを持ち込む必要はありません)、-mpopcnt
またはなしでコンパイルされる別のコンパイル ユニットが必要です。-march=corei7
フラグ。
別々にコンパイルされたコードをリンクすることが唯一の方法ですか? フォールバック popcount コードを生成するために使用できる、コンパイラの組み込み関数や他の種類のヒント、または私が知らない他の組み込み関数はありませんか?