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:

-xcode

Windows:

/Qxcode

引数

code

各説明にある命令セットに対応した命令が生成されます。次の説明の多くは、インテル® ストリーミング 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、SSE4.1、SSSE3、SSE3、SSE2、SSE 命令を生成します。将来のインテル® プロセッサー向けに最適化します。

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

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

SSSE3

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

SSE3

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

SSE2

インテル® プロセッサー向けのインテル® SSE2、SSE 命令を生成します。Intel NetBurst® マイクロアーキテクチャー向けに最適化します。この値は、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 拡張 (SSE) 命令セットを使用するため、指定されたプロセッサー以降のプロセッサーでのみ動作します。

これらの code 値で生成されるバイナリーは、対象プロセッサーのすべての機能をサポートしているインテル® プロセッサーで実行できます。

code 値を使用して、対象プロセッサーと互換性のないプロセッサーで実行するバイナリーを作成しないでください。不正な命令例外によりプログラムが異常終了したり、その他の予期しない動作が発生することがあります。

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

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

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

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

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

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

代替オプション

なし

関連情報


このヘルプトピックについてのフィードバックを送信

© 1996-2010 Intel Corporation. 無断での引用、転載を禁じます。