プロセッサー固有の自動最適化 (IA-32 のみ)

-ax (Linux*) または /Qax (Windows*) オプションは、指定されたインテル(R) プロセッサー固有の機能を利用する関数バージョンを生成できるかどうかを確認するようコンパイラーに指示します。

固有の関数バージョンを生成できることが判明した場合、コンパイラーはそれがパフォーマンスの向上につながるかどうかをチェックします。パフォーマンスの向上につながると判断した場合、コンパイラーはプロセッサー固有のバージョンと汎用バージョンの両方の関数を生成します。汎用バージョンは、あらゆる IA-32 プロセッサー上で実行できます。

実行時に、使用しているインテル・プロセッサーに応じて、この 2 つのバージョンのいずれかが実行されます。この手法を使用することで、プログラムは従来の IA-32 プロセッサーとの互換性を保ちながら、最新のインテル・プロセッサー上でパフォーマンスを大幅に向上できます。

Windows

Linux

最適化の対象となるプロセッサー

/QaxK

-axK

インテル(R) Pentium(R) III プロセッサーおよび互換性のあるインテル・プロセッサー

/QaxW

-axW

インテル Pentium 4 プロセッサーおよび互換性のあるインテル・プロセッサー

/QaxN

-axN

インテル Pentium 4 プロセッサーおよび互換性のあるインテル・プロセッサー

/QaxB

-axB

インテル Pentium M プロセッサーおよび互換性のあるインテル・プロセッサー

/QaxP

-axP

ンテル(R) Core(TM) Duo プロセッサーおよびンテル Core Solo プロセッサー、ストリーミング SIMD 拡張命令 3 (SSE3) をサポートするインテル Pentium 4 プロセッサーおよび互換性のあるインテル・プロセッサー

インテル EM64T 対応システムでは、有効な processor 値は W および P のみです。Mac OS* を実行しているインテル・プロセッサー・ベースのシステムでは、有効な processor 値は P のみです。

次のコンパイル例では、以下の 3 つの実行ファイルを生成する方法を説明します。

プラットフォーム

Linux

icpc -axNB prog.cpp

Windows

icl /QaxNB prog.cpp

上の表のオプションに関する詳細は、次のトピックを参照してください。

-ax (Linux) または /Qax (Windows) オプションを使用した場合、次のような欠点があります。

このオプションでコンパイルするアプリケーションは、すべての IA-32 プロセッサー上で実行できます。-x (Linux)、/Qx (Windows) と -ax (Linux)、/Qax (Windows) オプションの両方を指定した場合、-x (Linux)、/Qx (Windows) オプションで指定されたプロセッサーの種類と互換性のあるプロセッサーでのみ実行できる汎用コードが生成されます。