_set_SSE2_enable

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

int _set_SSE2_enable(
   int flag
);

参数

  • flag
    1是启用SSE2实现;0是禁用SSE2类型实现。 默认情况下,在支持它的处理器启用SSE2的实现。

返回值

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

备注

下列函数具有通过**_set_SSE2_enable**启用的SSE2实现:

这些函数的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");
}

Output

SSE2 enabled.

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关详细信息,请参阅平台调用示例

请参见

参考

CRT 库功能