プログラムを実行するプロセッサー専用の最適化コードを生成するようにコンパイラーに指示します。
Windows: [Optimization (最適化)] > [Require Intel(R) Processor Extensions (インテル(R) プロセッサー拡張コードの要求)]
Linux: [Code Generation (コード生成)] > [Require Intel(R) Processor Extensions (インテル(R) プロセッサー拡張コードの要求)]
Mac OS: [Optimization (最適化)] > [Require Intel(R) IA-32 Instruction Set Extensions (インテル(R) IA-32 命令セット拡張の要求)]
IA-32 アーキテクチャー、インテル(R) 64 アーキテクチャー
Linux* および Mac OS*: | -xprocessor |
Windows*: | /Qxprocessor |
processor | 特定のプロセッサーまたはマイクロアーキテクチャー用の値です。設定可能な値は以下のとおりです。 | |
S | 将来のインテル(R) プロセッサーでサポートされる、SSE4 のベクトル化コンパイラー命令およびメディア・アクセラレーター命令を生成します。また、SSSE3、SSE3、SSE2、および SSE 命令も生成します。将来のインテル・プロセッサー向けに最適化します。 | |
T | インテル・プロセッサー向けに SSSE3、SSE3、SSE2、および SSE 命令を生成します。また、インテル(R) Core(TM)2 Duo プロセッサー・ファミリー向けに最適化します。 | |
P | インテル・プロセッサー向けに SSE3、SSE2、および SSE 命令を生成します。また、インテル Core マイクロアーキテクチャーおよび Intel NetBurst(R) マイクロアーキテクチャーをベースとするインテル Core Duo プロセッサー、SSE3 をサポートするインテル(R) Pentium(R) 4 プロセッサー、SSE3 をサポートするインテル(R) Xeon(R) プロセッサー向けに最適化します。 | |
O | SSE3、SSE2、および SSE 命令を生成します。また、インテル
Core マイクロアーキテクチャーおよび Intel NetBurst マイクロアーキテクチャーをベースとするインテル・プロセッサー向けに最適化します。
生成されるコードは、SSE3、SSE2、および SSE 命令セットに対応したインテル以外のプロセッサーでも動作することがあります。 この値は、processor 値が S、T、および P の場合に有効となる一部の最適化を有効にしません。 他のプロセッサーでの使用に関する詳細は、説明を参照してください。 | |
B | 古いオプション (非推奨) です。インテル・プロセッサー向けに SSE2 および SSE 命令を生成します。また、インテル Pentium M プロセッサー向けに最適化します。 | |
N | インテル・プロセッサー向けに SSE2 および SSE 命令を生成します。また、インテル Pentium 4 プロセッサーおよび SSE2 をサポートするインテル Xeon プロセッサー向けに最適化します。 | |
W | SSE2 および SSE 命令を生成します。また、インテル Pentium
4 プロセッサーおよび SSE2 をサポートするインテル Xeon プロセッサー向けに最適化します。 生成されるコードは、SSE2 命令セットに対応したインテル以外のプロセッサーでも動作することがあります。 この値は、processor 値が B および N の場合に有効となる一部の最適化を有効にしません。 他のプロセッサーでの使用に関する詳細は、説明を参照してください。 | |
K | SSE 命令を生成します。また、インテル Pentium III プロセッサーおよびインテル Pentium III Xeon プロセッサー向けに最適化します。生成されるコードは、SSE
命令セットに対応したインテル以外のプロセッサーでも動作することがあります。 他のプロセッサーでの使用に関する詳細は、説明を参照してください。 |
IA-32 アーキテクチャー・ベースの Windows および
Linux システム: オフ インテル 64 アーキテクチャー・ベースの Windows および Linux システム: -xW IA-32 アーキテクチャー・ベースの Mac OS システム: -xP インテル 64 アーキテクチャー・ベースの Mac OS システム: -xT |
IA-32 アーキテクチャー・ベースの Windows および
Linux システムでは、コンパイラーはプロセッサー専用の最適化コードを生成しません。 他のオペレーティング・システムまたはアーキテクチャーのデフォルト値に関する詳細は、引数を参照してください。 |
プログラムを実行するプロセッサー専用の最適化コードを生成するようにコンパイラーに指示します。生成されるプロセッサー専用コードは、インテル以外のプロセッサーでは実行できないことがあります。
指定される引数に基づいて最適化を有効にします。インテル(R) ストリーミング SIMD 拡張命令 4 (SSE4)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3)、ストリーミング SIMD 拡張命令 3 (SSE3)、ストリーミング SIMD 拡張命令 2 (SSE2)、またはストリーミング SIMD 拡張命令 (SSE) を有効にします。
生成されるバイナリーは、対象プロセッサーのすべての機能をサポートしているインテル・プロセッサーで実行できます。例えば、W を使用して生成されるバイナリーは、W の対象であるインテル Pentium 4 プロセッサーのすべての機能を完全にサポートしているインテル Core 2 Duo プロセッサーでも実行できます。T を使用すると、インテル Core 2 Duo プロセッサーで利用可能な機能や最適化をより多く活用することができます。
processor 値 S、T、P、O、W、N、B、または K を使用して、対象プロセッサーと互換性のないプロセッサーで実行するバイナリーを作成しないでください。不正な命令例外によりプログラムが異常終了したり、その他の予期しない動作が発生することがあります。例えば、W を使用して生成されるバイナリーは、インテル Pentium III プロセッサーまたは SSE2 命令をサポートしていないそれ以前のプロセッサーでは実行できません。
processor 値 S、T、P、N、または B を使用してコンパイルされた main() 関数 は、サポートされていないプロセッサー上で実行するとランタイムエラーが発生します。詳細は、「アプリケーションの最適化」を参照してください。
複数の processor 値を指定すると、指定されたプロセッサーの中で最もパフォーマンスの高いプロセッサー向けにコードが生成されます。processor 値のパフォーマンスの順番は、高いものから順に、S、T、P、O、B、N、W、K です。
processor 値 O、W、および K を使用して生成されるバイナリーは、対象となるインテル・プロセッサーと同じ機能を実装したインテル以外のプロセッサーでも動作します。
IA-64 アーキテクチャー・ベースの Linux および Windows システムでは、processor 値 B、N、および K は無効です。
IA-32 アーキテクチャー・ベースの Mac OS システムでは、processor 値 S、T、および P は有効です。これらのシステムでは、P がデフォルトで常に設定されます。インテル 64 アーキテクチャー・ベースの Mac OS システムでは、processor 値 S および T のみ有効です。これらのシステムでは、T がデフォルトで常に設定されます。
-xK | Linux : -march=pentium3 Mac OS: なし Windows: なし |
-xW | Linux : -march=pentium4 Mac OS: なし Windows: なし |
ax、Qax コンパイラー・オプション