_set_SSE2_enable

启用或禁用在 CRT 数学例程中使用流式处理 SIMD 扩展 2 (SSE2) 指令。 (此函数在 x64 体系结构上不可用,因为默认情况下将启用 SSE2。)

语法

int _set_SSE2_enable(
   int flag
);

参数

flag
1 表示启用 SSE2 实现;0 表示禁用 SSE2 实现。 默认情况下,在支持 SSE2 实现的处理器上启用 SSE2 实现。

返回值

如果启用 SSE2 实现,则值为非零;如果禁用 SSE2 实现,则值为零。

注解

下列函数具有 SSE2 实现,可通过使用 _set_SSE2_enable 进行启用:

这些函数的 SSE2 实现可能会给出与默认实现略有不同的答案。 SSE2 中间值是 64 位浮点量,但默认实现中间值为 80 位浮点量。

注意

如果使用 /Oi(生成内部函数)编译器选项编译项目,则可能出现 _set_SSE2_enable 似乎没有效果的情况。 /Oi 编译器选项为编译器提供使用内部函数的权限来替换 CRT 调用;此行为重写 _set_SSE2_enable 的效果。 如果要保证 /Oi 不会重写 _set_SSE2_enable,请使用 /Oi- 来编译项目。 当使用暗示 /Oi 的其他编译器开关时,这也可能是一种好方法

只有在屏蔽所有异常时才可使用 SSE2 实现。 使用 _control87_controlfp 屏蔽异常。

要求

例程 必需的标头
_set_SSE2_enable <math.h>

有关兼容性的详细信息,请参阅 兼容性

示例

// 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.

另请参阅

C 运行时 (CRT) 和 C++ 标准库 (STL) .lib 文件