_set_SSE2_enable
CRT の数値演算ルーチンの [ストリーミング SIMD 拡張機能 2] (SSE2) 命令の使用を有効または無効にします。(この関数は、SSE2 が既定で有効になっているため、x64 アーキテクチャでは実行できません)。
int _set_SSE2_enable(
int flag
);
パラメーター
- flag
SSE2 実装を有効にする 1; SSE2 実装を無効にする場合は 0。既定では、SSE2 実装は、をサポートするプロセッサで有効になっています。
戻り値
SSE2 実装が有効な場合は、; SSE2 実装が無効になっている場合はゼロ。
解説
次の関数に _set_SSE2_enableを使用して有効にできる SSE2 実装があります:
これらの関数の実装は SSE2 SSE2 中間値が 64 ビットの浮動小数点数ですが、既定の実装の中間値が bit 80 の浮動小数点数であるための既定の実装とは若干異なる解答を受ける場合があります。
[!メモ]
プロジェクトをコンパイル [/Oi (Generate Intrinsic Functions)] のコンパイラ オプションを使用すると _set_SSE2_enable も効果がないように見えることがあります。/Oi のコンパイラ オプションは、コンパイラに CRT の呼び出しを置換するには組み込みを使用するように権を与えます; この動作は _set_SSE2_enableの効果をオーバーライドします。/Oi は _set_SSE2_enableをオーバーライドしないことを保証する場合は、プロジェクトのコンパイルに /Oi- を使用します。これは、/Oiを意味する他のコンパイラ スイッチを使用するときに推奨される方法である場合があります。
SSE2 実装では、すべての例外が付き場合にだけ使用されます。例外をマスクに _control87 の_controlfp を使用します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_set_SSE2_enable |
<math.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// crt_set_SSE2_enable.c
// processor: x86
#include <math.h>
#include <stdio.h>
int main()
{
int i = _set_SSE2_enable(1);
if (i)
printf("SSE2 enabled.\n");
else
printf("SSE2 not enabled; processor does not support SSE2.\n");
}
出力
SSE2 enabled.
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。