コンパイルを行うホスト・プロセッサーで利用可能な最上位の命令セット向けのコードを生成するようにコンパイラーに指示します。
Linux*: | -xHost |
Windows*: | /QxHost |
なし
Windows*: なし |
Windows* システムでは、/Qx と /arch のどちらも指定されない場合、デフォルトは /arch:SSE2 です。 Linux* システムでは、-x と -m のどちらも指定されていない場合、デフォルトは -msse2 です。 |
このオプションは、コンパイルを行うホスト・プロセッサーで利用可能な最上位の命令セット向けのコードを生成するようにコンパイラーに指示します。
このコンパイラー・オプションで生成される命令は、コンパイルを行うホスト・プロセッサーによって異なります。
次の表は、[Q]xHost オプションを指定した場合の効果と、出力される実行ファイルがホスト・プロセッサーとは異なるプロセッサーで実行できるかどうかを示します。
表の説明は、インテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2)、インテル® AVX、インテル® ストリーミング SIMD 拡張命令 (インテル® SSE)、インテル® ストリーミング SIMD 拡張命令補足命令 (インテル® SSSE) についてです。
ホスト・プロセッサーの命令セット |
-xHost または /QxHost コンパイラー・オプションが指定された場合の効果 |
---|---|
インテル® AVX2 |
インテル® プロセッサー上でコンパイルする場合: [Q]xCORE-AVX2 に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® AVX2 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -march=core-avx2 (Linux*) または /arch:CORE-AVX2 (Windows*) オプションに相当します。生成された実行ファイルは、インテル® AVX2 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。インテル® AVX2 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® AVX |
インテル® プロセッサー上でコンパイルする場合: [Q]xAVX に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® AVX 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -mavx (Linux*) または /arch:AVX (Windows*) オプションに相当します。生成された実行ファイルは、インテル® AVX 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。インテル® AVX 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® SSE4.2 |
インテル® プロセッサー上でコンパイルする場合: [Q]xSSE4.2 に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® SSE4.2 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -msse4.2 (Linux*) または /arch:SSE4.2 (Windows*) オプションに相当します。生成された実行ファイルは、インテル® SSE4.2 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。インテル® SSE4.2 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® SSE4.1 |
インテル® プロセッサー上でコンパイルする場合: [Q]xSSE4.1 に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® SSE4.1 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -msse4.1 (Linux*) または /arch:SSE4.1 (Windows*) オプションに相当します。生成された実行ファイルは、インテル® SSE4.1 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。インテル® SSE4.1 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® SSSE3 |
インテル® プロセッサー上でコンパイルする場合: [Q]xSSSE3 に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® SSSE3 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -mssse3 (Linux*) または /arch:SSSE3 (Windows*) オプションに相当します。生成された実行ファイルは、インテル® SSSE3 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。インテル® SSSE3 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
インテル® SSE3 |
インテル® プロセッサー上でコンパイルする場合: [Q]xSSE3 に相当します。生成された実行ファイルは、インテル以外のプロセッサーと、インテル® SSE3 命令をサポートしていないインテル® プロセッサー上では動作しません。 インテル以外のプロセッサー上でコンパイルする場合: -msse3 (Linux*) または /arch:SSE3 (Windows*) オプションに相当します。生成された実行ファイルは、インテル® SSE3 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。インテル® SSE3 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーの警告が発生することがあります。 |
インテル® SSE2 |
インテル® プロセッサーまたはインテル以外のプロセッサー上でコンパイルする場合: -msse2 オプション (Linux* および macOS*) または /arch:SSE2 オプション (Windows*) に相当します。生成された実行ファイルは、インテル® SSE2 命令以上をサポートするインテル® プロセッサーおよびインテル以外のプロセッサーで動作します。インテル® SSE2 命令をサポートしていないランタイム・プロセッサーでは、ランタイムエラーが発生することがあります。 |
[Q]x オプションの詳細は、オプションの説明を参照してください。
Visual Studio*: [Code Generation] > [Intel Processor-Specific Optimization]
Eclipse*: [Code Generation] > [Intel Processor-Specific Optimization]
なし
製品および性能に関する情報 |
---|
性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。 注意事項の改訂 #20201201 |