5

組み込みの高速 CPU 命令を実行したいコードがありますpopcnt( withまたは__builtin_popcountllなどの適切なフラグを使用してコンパイルすると、これが発生します)が、CPU がサポートしていないことが明らかになったときにコードにフォールバックすることもできます。ハードウェア命令。g++ -mpopcntclang++ -march=corei7cpuid

もちろん、コンパイラの人々が正しく実装したと私が信頼するフォールバック コードを取得するには (そのため、popcount を実行するために C または asm コードを持ち込む必要はありません)、-mpopcntまたはなしでコンパイルされる別のコンパイル ユニットが必要です。-march=corei7フラグ。

別々にコンパイルされたコードをリンクすることが唯一の方法ですか? フォールバック popcount コードを生成するために使用できる、コンパイラの組み込み関数や他の種類のヒント、または私が知らない他の組み込み関数はありませんか?

4

3 に答える 3