組み込み関数サンプルは、コンパイラーによりサポートされている組み込み関数とマクロの一般的な使用方法を示します。
コンパイラーに付属しているその他のサンプルについては、「サンプル」を参照してください。
ソース |
場所 | ||||
---|---|---|---|---|---|
intrin_double_sample.c intrin_dot_sample.c intrin_time_sample.c intrin_ftz_sample.c |
|
このサンプルでは、コンパイラーでサポートされている組み込み関数とマクロのさまざまな特徴を説明します。
ファイル名 |
説明 |
---|---|
intrin_double_sample.c |
ストリーミング SIMD 拡張命令 3 (SSE3)、およびストリーミング SIMD 拡張命令 2 (SSE2) の組み込み関数を使用して、2 つの複素数の乗算を実行する方法を示します。 SSE3 組み込み関数と SSE2 組み込み関数は、SSE3 命令セットに対応していないプロセッサーでは実行できません。 |
intrin_dot_sample.c |
ストリーミング SIMD 拡張命令 3 (SSE3) 、C、MMX(R) テクノロジーの組み込み関数を使用して 2 つのベクトルのドット積を計算する方法を示します。 SSE3 組み込み関数と MMX テクノロジーの組み込み関数は、SSE3 命令セットに対応していないプロセッサーでは実行できません。 |
intrin_time_sample.c |
_rdtsc() 組み込み関数を使用して、タイム・スタンプ・カウンターを読み取る方法を示します。64 ビット・タイム・スタンプ・カウンターの現在の値を出力します。このため、サンプルコードを実行するたびに出力される値は異なります。 IA-32 アーキテクチャーおよびインテル(R) 64 アーキテクチャーのみ。 |
intrin_ftz_sample.c |
MXCSR コントロール・レジスターの FTZ フラグと DAZ フラグを読み取るコンパイラー・マクロの使用方法を示します。 |
SSE2 と SSE3 のサンプルは、これらの命令セットに対応したプロセッサーで実行する必要があります。プロセッサーが対応していない場合にはプログラムは失敗します。
サンプルでは、コンパイルに必要な特別なオプションはありません。ただし、コマンド例には、Linux および Mac OS で実行ファイルが上書きされないようにするため、ファイル名を指定するコンパイラー・オプションが含まれています。Windows コンパイルでは、実行ファイルの名前にソースファイル名が自動で使用されます。
プラットフォーム |
コマンド |
---|---|
Linux および Mac OS |
icpc intrin_double_sample.c -o intrin_double_sample icpc intrin_dot_sample.c -o intrin_dot_sample icpc intrin_time_sample.c -o intrin_time_sample icpc intrin_ftz_sample.c -o intrin_ftz_sample |
Windows |
icl intrin_double_sample.c icl intrin_dot_sample.c icl intrin_time_sample.c icl intrin_ftz_sample.c |
プラットフォーム |
コマンド |
---|---|
Linux および Mac OS |
./intrin_double_sample |
Windows |
intrin_double_sample |
実行ファイルにより、次のような結果が生成されます。
コマンド |
---|
Complex Product(C): 23.00+ -2.00i Complex Product(SSE3): 23.00+ -2.00i Complex Product(SSE2): 23.00+ -2.00i |
このサンプルを SSE2 および SSE3 に対応していないプロセッサーで実行すると、実行ファイルは失敗し、例外エラーが発行されます。
プラットフォーム |
コマンド |
---|---|
Linux および Mac OS |
./intrin_dot_sample |
Windows |
intrin_dot_sample |
実行ファイルにより、次のような結果が生成されます。
コマンド |
---|
Dot Product computed by C: 506.000000 Dot Product computed by SSE2 intrinsics: 506.000000 Dot Product computed by MMX intrinsics: 506 |
このサンプルを SSE2 に対応していないプロセッサーで実行すると、実行ファイルは失敗し、例外エラーが発行されます。
プラットフォーム |
コマンド |
---|---|
Linux および Mac OS |
./intrin_time_sample |
Windows |
intrin_time_sample |
アプリケーションは、次の結果を生成しますが、最終の数字はプログラムを実行するごとに異なります。
コマンド |
---|
Processor cycles 15280 |
プラットフォーム |
コマンド |
---|---|
Linux および Mac OS |
./intrin_ftz_sample |
Windows |
intrin_ftz_sample |
実行ファイルにより、次のような結果が生成されます。
コマンド |
---|
FTZ is set. DAZ is set. |