サポートされている命令セットを示すクラスの例です。 https://msdn.microsoft.com/en-us/library/hskdteyh.aspxMSVC/arch:[命令セット] - SSE3、AVX、AVX2
それぞれ異なる命令セットを使用して、1つの関数の3つの異なる実装を記述したいと思います。しかし、フラグ/ ARCH:AVX2のために、このアプリケーションはIntelプロセッサの第4 +世代で実行されることはありません。そのため、チェックの全ポイントは無意味です。
だから質問は何ですか:正確にはこのフラグはありますか? のサポートを有効にするか、またはコンパイラの最適化を指定の命令セットで有効にしますか?
つまり、このフラグを完全に削除して、immintrin.h、emmintrin.hなどの関数を使い続けることはできますか?
MSVCにSSE3オプションはありません。 64ビットモードでは、オプションは 'AVX'と' AVX2'です。 'AVX'の主なポイントは、MSVCにvexでエンコードされた命令を使用するように指示することです。私はAVX2のポイントを本当に知りません。私はそれが主にFMA3からの最適化のためだと思います。 –