x、Qx

 

プログラムを実行するインテル® プロセッサー専用の最適化コードを生成するようにコンパイラーに指示します。

IDE オプション

Windows: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]

Linux: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]

Mac OS X: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]

アーキテクチャー

IA-32 アーキテクチャーおよびインテル® 64 アーキテクチャー

構文

Linux および Mac OS X:

-xprocessor

Windows:

/Qxprocessor

引数

processor

専用コードを生成する対象のプロセッサーです。次の説明の多くは、インテル® ストリーミング SIMD 拡張命令 (インテル® SSE) および SSE 補足命令 (インテル® SSSE) についてです。設定可能な値は以下のとおりです。

Host

コンパイルを行うホスト・プロセッサーで利用可能な最上位の命令セット向けのコードを生成します。

インテル® プロセッサーでは、最も最適な –x オプション (Linux および Mac OS X) または /Qx オプション (Windows) に相当します。インテル® プロセッサー以外では、最適な –m オプション (Linux および Mac OS X) または /arch オプション (Windows) に相当します。

次の場合、生成される実行ファイルは、ホストと異なるプロセッサーでは動作しないことがあります。

  • ホスト・プロセッサーでサポートされているすべての命令がターゲット・プロセッサーでサポートされていない場合

  • ホストがインテル® プロセッサーで、ターゲットがインテル® プロセッサー以外の場合

AVX

インテル® Advanced Vector Extensions (インテル® AVX) をサポートするインテル® プロセッサー向けに最適化します。

SSE4.2

インテル® Core™ i7 プロセッサーでサポートされているインテル® SSE4 高効率および高速な文字列処理命令を生成します。 インテル® SSE4 ベクトル化コンパイラー命令およびメディア・アクセラレーター命令、インテル® SSSE3、SSE3、SSE2、SSE 命令を生成します。また、インテル® Core™ プロセッサー・ファミリー向けに最適化します。

SSE4.1

SSE4 ベクトル化コンパイラー命令およびメディア・アクセラレーター命令をインテル® プロセッサー向けに生成します。インテル® SSSE3、SSE3、SSE2、および SSE 命令を生成します。また、インテル® 45nm Hi-k 次世代 インテル® Core™ マイクロアーキテクチャー・プロセッサー向けに最適化します。これは、古いオプション S の代わりです。

SSE3_ATOM

インテル® Atom™ プロセッサーとインテル® Centrino® Atom™ プロセッサー・テクノロジー向けに最適化します。-minstruction オプション (Linux および Mac OS) または /Qinstruction オプション (Windows) の設定に応じて、MOVBE 命令が生成されます。

SSSE3

インテル® プロセッサー向けにインテル® SSSE3、SSE3、SSE2、および SSE 命令を生成します。また、インテル® Core™2 Duo プロセッサー・ファミリー向けに最適化します。Mac OS X システムでは、このオプションはインテル® 64 アーキテクチャーでのみ利用できます。 このオプションは、古いオプション T の代わりに使用します。

SSE3

インテル® プロセッサー向けにインテル® SSE3、SSE2、および SSE 命令を生成します。また、インテル® Core™ マイクロアーキテクチャーおよび Intel NetBurst® マイクロアーキテクチャーをベースとするインテル® プロセッサー向けに最適化します。Mac OS X システムでは、このオプションは IA32 アーキテクチャーでのみ利用できます。このオプションは、古いオプション P の代わりに使用します。

SSE2

インテル® プロセッサー向けにインテル® SSE2 および SSE 命令を生成します。また、インテル® Pentium® 4 プロセッサー、インテル® Pentium® M プロセッサー、およびインテル® SSE2 対応インテル® Xeon® プロセッサー向けに最適化します。この値は、Mac OS X システムでは利用できません。 これは、古いオプション N の代わりです。

デフォルト

Windows システム: なし
Linux システム: なし
IA-32 アーキテクチャー・ベースの Mac OS X システム: SSE3
インテル® 64 アーキテクチャー・ベースの Mac OS X システム: SSSE3

Windows システムでは、/Qx/arch のどちらも指定されない場合、 デフォルトは /arch:SSE2 です。

Linux システムでは、-x-m のどちらも指定されていない場合、 デフォルトは -msse2 です。

説明

このオプションは、プログラムを実行するインテル® プロセッサー専用の最適化コードを生成するようにコンパイラーに指示します。また、インテル® プロセッサー固有の最適化に加えて新しい最適化を有効にします。生成されるプロセッサー専用コードは、インテル以外のプロセッサーでは実行できないことがあります。

このオプションは、指定される引数に基づいて最適化を有効にします。例えば、インテル® ストリーミング SIMD 拡張命令 4 (インテル® SSE4)、インテル® ストリーミング SIMD 拡張命令 3 補足命令 (インテル® SSSE3)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、またはインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) を有効にします。

生成されるバイナリーは、対象プロセッサーのすべての機能をサポートしているインテル® プロセッサーで実行できます。例えば、SSE3 を使用して生成されるバイナリーは、SSE3 の対象であるインテル® Pentium® 4 プロセッサーのすべての機能を完全にサポートしているインテル® Core™2 Duo プロセッサーでも実行できます。SSE3 を使用すると、インテル® Core™2 Duo プロセッサーで利用可能な機能や最適化をより多く活用することができます。

processor 値を使用して、対象プロセッサーと互換性のないプロセッサーで実行するバイナリーを作成しないでください。不正な命令例外によりプログラムが異常終了したり、その他の予期しない動作が発生することがあります。例えば、SSE3 を使用して生成されるバイナリーは、インテル® Pentium® III プロセッサーまたは SSE3 命令をサポートしていないそれ以前のプロセッサーでは実行できません。

processor 値のいずれかを使用してコンパイルされた main() 関数 は、サポートされていないプロセッサー上で実行するとランタイムエラーが発生します。詳細は、「アプリケーションの最適化」を参照してください。

複数の processor 値を指定すると、指定されたプロセッサーの中で最もパフォーマンスの高いプロセッサー向けにコードが生成されます。processor 値のパフォーマンスの順番は、高いものから順に、SSE4.2、SSE4.1、SSSE3, SSE3、SSE2. です。processor 値の AVX と SSE3_ATOM は、これには含まれないことに注意してください。

コンパイラー・オプション march を使用して生成されるバイナリーは、対象となるインテル® プロセッサーと同じ機能を実装したインテル以外のプロセッサーでも動作します。

以前の値 O は古いオプションで、-msse3 オプション (Linux および Mac OS X)、/arch:SSE3 オプション (Windows) に置き換わりました。

以前の値である W および K は古いオプションです。新しいオプションについては、次のとおりです。

-x オプションと /Qx オプションは、-m/arch ではされない追加の最適化を有効にします。

Windows システムでは、/Qx オプション と /arch オプションは互いに排他的であり、同時に両方を指定することはできません。 両方を指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。 同様に、Linux および Mac OS X システムでは、-x オプション と -m オプション は互いに排他的であり、同時に両方を指定することはできません。 両方を指定すると、コンパイラーは後に指定されたオプションを使用し、警告を発行します。

代替オプション

なし

関連情報