_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 ビット浮動小数点の数量ですが、既定の実装中間値は 80 ビット浮動小数点数です。
Note
/Oi (組み込み関数の生成) コンパイラ オプションを使用してプロジェクトをコンパイルする場合、_set_SSE2_enable
では何も生じないように見えることがあります。 /Oi コンパイラ オプションは、組み込みを使用して CRT 呼び出しを置き換える権限をコンパイラに与えます。この動作は、_set_SSE2_enable
の効果をオーバーライドします。 /Oiが_set_SSE2_enable
をオーバーライドしないことを保証する場合は、/Oi-を使用してプロジェクトをコンパイルします。 /Oi を暗黙指定する他のコンパイラ スイッチを使用するときにも、そのようにすることをお勧めします。
SSE2 実装はすべての例外がマスクされる場合にのみ使用します。 例外をマスクするには、 _control87
、 _controlfp
を使用します。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_set_SSE2_enable |
<math.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// 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.