インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

m

生成する命令セットを含む、ターゲット機能をコンパイラーに指示します。

構文

Linux* および macOS*:

-mcode

Windows*:

なし

引数

code

生成する命令セットを含む、ターゲット機能セットをコンパイラーに指示します。次の説明の多くは、インテル® ストリーミング SIMD 拡張命令 (インテル® SSE) およびインテル® ストリーミング SIMD 拡張命令補足命令 (インテル® SSSE) についてです。設定可能な値は以下のとおりです。

avx

インテル® AVX、インテル® SSE4.2、インテル® SSE4.1、インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令を生成します。

sse4.2

インテル® SSE4.2、インテル® SSE4.1、インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令を生成します。

sse4.1

インテル® SSE4.1、インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令を生成します。

ssse3

インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令を生成します。

sse3

インテル® SSE3、インテル® SSE2、インテル® SSE 命令を生成します。

sse2

インテル® SSE2 およびインテル® SSE 命令を生成します。この値は、Linux* システムでのみ利用できます。

sse

これは古いオプション (非推奨) です。ia32 を指定した場合と同じです。

ia32

IA-32 アーキテクチャーと互換性のある x86/x87 汎用コードを生成します。デフォルト、および以前に設定された拡張命令設定を無効にします。また、機能固有の最適化と命令をすべて無効にします。この値は、IA-32 アーキテクチャー・ベースの Linux* システムでのみ利用できます。

デフォルト

Linux* システム: -msse2
IA-32 アーキテクチャー・ベースの macOS* システム: -msse3
インテル® 64 アーキテクチャー・ベースの macOS* システム: -mssse3

デフォルト値に関する詳細は、上記の「引数」を参照してください。

説明

このオプションは、生成する命令セットを含む、ターゲット機能をコンパイラーに指示します。

これらのオプションで生成されたコードは、対応する命令セットがサポートされている互換性のあるインテル以外のプロセッサーで動作します。

-x オプションと -m オプションは互いに排他的であり、同時に両方を指定することはできません。両方指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。

Linux* システム: gcc との互換性のために、コンパイラーは次のオプションを受け付けますが効果はありません。警告メッセージが表示され、関連する命令は生成されません。推奨する代わりのオプションを使用するようにしてください。

gcc 互換オプション (Linux*)

推奨する代わりのオプション

-mfma

-march=core-avx2

-mbmi-mavx2-mlzcnt

-march=core-avx2

-mmovbe

-march=atom -minstruction=movbe

-mcrc32-maes-mpclmul-mpopcnt

-march=corei7

-mvzeroupper

-march=corei7-avx

-mfsgsbase-mrdrnd-mf16c

-march=core-avx-i

IDE オプション

なし

代替オプション

Linux* および macOS*: なし

Windows*: /arch

関連情報