特定のプロセッサに合わせて自動的に最適化する (IA-32 のみ)

-ax{K|W|N|B|P} オプションは、指定されたインテル® プロセッサ固有の機能を利用する関数バージョンを生成できるかどうかを確認するようにコンパイラに命令します。固有の関数バージョンを生成できることが判明した場合、コンパイラはそれがパフォーマンスの向上につながるかどうかをチェックします。パフォーマンスの向上につながると判明した場合、コンパイラはプロセッサ固有の関数バージョンと汎用バージョンの両方を生成します。汎用バージョンはすべての IA-32 プロセッサ上で実行できます。

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

ただし、-ax{K|W|N|B|P} を使用した場合には、次のような欠点があります:

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

オプション 最適化の対象となるプロセッサ
-axK インテル® Pentium® III プロセッサおよび互換性のあるインテル・プロセッサ。
-axW インテル Pentium 4 プロセッサおよび互換性のあるインテル・プロセッサ。
-axN インテル Pentium 4 プロセッサおよび互換性のあるインテル・プロセッサ。このオプションは、インテル・プロセッサ固有の最適化に加えて新しい最適化も有効にします。
-axB インテル Pentium M プロセッサおよび互換性のあるインテル・プロセッサ。このオプションは、インテル・プロセッサ固有の最適化に加えて新しい最適化も有効にします。
-axP インテル Pentium 4 プロセッサ (ストリーミング SIMD 拡張命令 3 (SSE3) 対応)。このオプションは、インテル・プロセッサ固有の最適化に加えて新しい最適化も有効にします。

下記のコンパイルは、次のような 1 つの実行ファイルを生成します:

prompt>icpc -axKW prog.cpp