_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。有关详细信息,请参阅平台调用示例。