コンパイルを行うホスト・プロセッサーで利用可能な最上位の命令セット向けのコードを生成するようにコンパイラーに指示します。
Windows: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]
[Optimization (最適化)] > [Use Intel(R) Processor Extensions (インテル(R) プロセッサー拡張コードの使用)]
Linux: なし
Mac OS X: [Optimization (最適化)] > [Use Intel(R) Processor Extensions (指定された命令セットの専用コード生成)]
IA-32 アーキテクチャーおよびインテル® 64 アーキテクチャー
Linux* および Mac OS* X: | -xHost |
Windows: | /QxHost |
なし
Windows* OS システム: なし |
Windows* OS システムでは、/Qx と /arch のどちらも指定されない場合、デフォルトは /arch:SSE2 です。 Linux* OS システムでは、-x と -m のどちらも指定されていない場合、デフォルトは -msse2 です。 |
このオプションは、コンパイルを行うホスト・プロセッサーで利用可能な最上位の命令セット向けのコードを生成するようにコンパイラーに指示します。
このコンパイラー・オプションで生成される命令は、コンパイルを行うホスト・プロセッサーによって異なります。
次の表では、-xHost オプション (Linux* OS および Mac OS* X) または /QxHost オプション (Windows* OS) を指定した場合の効果と、出力される実行ファイルがホスト・プロセッサーとは異なるプロセッサーで実行できるかどうかを示します。
表の説明は、インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX)、インテル® ストリーミング SIMD 拡張命令 (インテル® SSE)、SSE 補足命令 (SSSE) についてです。
ホスト・プロセッサーの命令セット |
-xHost または /QxHost コンパイラー・オプションが指定された場合の効果 |
---|---|
インテル® AVX2 |
インテル® プロセッサー上でコンパイルする場合: -xCORE-AVX2 オプション (Linux* OS および Mac OS* X) または /QxCORE-AVX2 オプション (Windows* OS) に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® AVX2 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -march=core-avx2 オプション (Linux* OS および Mac OS* X) または /arch:CORE-AVX2 オプション (Windows* OS) に相当します。生成された実行ファイルは、インテル® AVX2 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。 インテル® AVX2 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® AVX |
インテル® プロセッサー上でコンパイルする場合: -xAVX オプション (Linux* OS および Mac OS* X) または /QxAVX オプション (Windows* OS) に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® AVX 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -mavx オプション (Linux* OS および Mac OS* X) または /arch:AVX オプション (Windows* OS) に相当します。生成された実行ファイルは、インテル® AVX 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。 インテル® AVX 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® SSE4.2 |
インテル® プロセッサー上でコンパイルする場合: -xSSE4.2 オプション (Linux* OS および Mac OS* X) または /QxSSE4.2 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル以外のプロセッサーと、インテル® SSE4.2 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -msse4.2 オプション (Linux* OS および Mac OS* X) または /arch:SSE4.2 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル® SSE4.2 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。 インテル® SSE4.2 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® SSE4.1 |
インテル® プロセッサー上でコンパイルする場合: -xSSE4.1 オプション (Linux* OS および Mac OS* X) または /QxSSE4.1 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル以外のプロセッサーと、インテル® SSE4.1 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -msse4.1 オプション (Linux* OS および Mac OS* X) または /arch:SSE4.1 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル® SSE4.1 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。 インテル® SSE4.1 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
SSSE3 |
インテル® プロセッサー上でコンパイルする場合: -xSSSE3 オプション (Linux* OS および Mac OS* X) または /QxSSSE3 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル以外のプロセッサーと、SSSE3 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -mssse3 オプション (Linux* OS および Mac OS* X) または /arch:SSSE3 オプション (Windows* OS) に相当します。 生成された実行ファイルは、SSSE3 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。 SSSE3 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® SSE3 |
インテル® プロセッサー上でコンパイルする場合: -xSSE3 オプション (Linux* OS および Mac OS* X) または /QxSSE3 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル以外のプロセッサーと、インテル® SSE3 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -msse3 オプション (Linux* OS および Mac OS* X) または /arch:SSE3 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル® SSE3 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。 インテル® SSE3 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーの警告が発生することがあります。 |
インテル® SSE2 |
インテル® プロセッサーまたはインテル以外のプロセッサー上でコンパイルする場合: -msse2 オプション (Linux* OS および Mac OS* X) または /arch:SSE2 オプション (Windows* OS) に相当します。 生成された実行ファイルは、インテル® SSE2 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。 インテル® SSE2 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
-x オプション (Linux* OS および Mac OS* X) および /Qx オプション (Windows* OS) の詳細は、オプションの説明を参照してください。
最適化に関する注意事項 |
---|
インテル® コンパイラー、関連ライブラリーおよび関連開発ツールには、インテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能な命令セット (SIMD 命令セットなど) 向けの最適化オプションが含まれているか、あるいはオプションを利用している可能性がありますが、両者では結果が異なります。また、インテル® コンパイラー用の特定のコンパイラー・オプション (インテル® マイクロアーキテクチャーに非固有のオプションを含む) は、インテル製マイクロプロセッサー向けに予約されています。これらのコンパイラー・オプションと関連する命令セットおよび特定のマイクロプロセッサーの詳細は、『インテル® コンパイラー・ユーザー・リファレンス・ガイド』の「コンパイラー・オプション」を参照してください。インテル® コンパイラー製品のライブラリー・ルーチンの多くは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。インテル® コンパイラー製品のコンパイラーとライブラリーは、選択されたオプション、コード、およびその他の要因に基づいてインテル製マイクロプロセッサーおよび互換マイクロプロセッサー向けに最適化されますが、インテル製マイクロプロセッサーにおいてより優れたパフォーマンスが得られる傾向にあります。 インテル® コンパイラー、関連ライブラリーおよび関連開発ツールは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。 インテルでは、インテル® コンパイラーおよびライブラリーがインテル製マイクロプロセッサーおよび互換マイクロプロセッサーにおいて、優れたパフォーマンスを引き出すのに役立つ選択肢であると信じておりますが、お客様の要件に最適なコンパイラーを選択いただくよう、他のコンパイラーの評価を行うことを推奨しています。インテルでは、あらゆるコンパイラーやライブラリーで優れたパフォーマンスが引き出され、お客様のビジネスの成功のお役に立ちたいと願っております。お気づきの点がございましたら、お知らせください。 改訂 #20110307 |
なし
© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。