インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
生成する命令セットと最適化を含む、ターゲット・プロセッサー機能をコンパイラーに指示します。
Windows*: [Optimization (最適化)] > [Use Intel® Processor Extensions (指定された命令セットの専用コード生成)]
Linux*: [Optimization (最適化)] > [Use Intel® Processor Extensions (指定された命令セットの専用コード生成)]
OS X*: [Optimization (最適化)] > [Use Intel® Processor Extensions (指定された命令セットの専用コード生成)]
Windows* システム: なし |
Windows* システムでは、/Qx と /arch のどちらも指定されない場合、デフォルトは /arch:SSE2 です。 Linux* システムでは、-x と -m のどちらも指定されていない場合、デフォルトは -msse2 です。 |
生成されるプロセッサー専用コードは、インテル以外のプロセッサーでは実行できないことがあります。
code 値を使用して、対象プロセッサーと互換性のないプロセッサーで実行するバイナリーを作成しないでください。不正な命令例外によりプログラムが異常終了したり、その他の予期しない動作が発生することがあります。
code 値のいずれかを使用してコンパイルされた main() 関数は、インテル以外のプロセッサーを含むサポートされていないプロセッサー上で実行するとランタイムエラーが発生します。
コンパイラー・オプション m と arch を使用して生成されるバイナリーは、対象となるインテル® プロセッサーと同じ機能を実装したインテル以外のプロセッサーでも動作します。
以前の値 O は古いオプションで、-msse3 オプション (Linux* および OS X*)、/arch:SSE3 オプション (Windows*) に置き換わりました。
以前の値である W および K は古いオプション (非推奨) です。新しいオプションについては、次のとおりです。
OS X* システム: W または K の完全な後継オプションはありません。デフォルトオプション -msse3 (IA-32 アーキテクチャー) または -mssse3 (インテル® 64 アーキテクチャー) にアップグレードすることができます。
Windows* および Linux* システム: W の後継オプションは -msse2 (Linux*)、/arch:SSE2 (Windows*) です。K の完全な後継オプションはありません。しかし、Windows* システムで /QxK は /arch:IA32 と解釈され、Linux* システムでは-xK は -mia32 と解釈されます。 または、次のいずれかを行います。
-msse2 オプション (Linux*)、/arch:SSE2 オプション (Windows*) にアップグレードします。これは、インテル® SSE2 専用のコードを 1 つ生成します。このコードは、以前のプロセッサーでは動作しません。
-mia32 -axSSE2 (Linux*)、/arch:IA32 /QaxSSE2 (Windows*) のように 2 つのオプションを組み合わせて指定します。IA-32 アーキテクチャー・ベース用とインテル® SSE2 用のこの組み合わせで、あらゆるプロセッサーで実行可能なファイルが生成されます。
-x オプションと /Qx オプションは、-m または /arch (または –ax および /Qax) では有効にされない追加の最適化を有効にします。
Windows* システムでは、/Qx オプションと /arch オプションは互いに排他的であり、同時に両方を指定することはできません。両方を指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。 同様に、Linux* および OS X* システムでは、-x オプションと -m オプションは互いに排他的であり、同時に両方を指定することはできません。 両方を指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。
インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。 改訂 #20110804 |