Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Enables or disables the use of Streaming SIMD Extensions 2 (SSE2) instructions in CRT math routines. (This function isn't available on x64 architectures because SSE2 is enabled by default.)
Syntax
int _set_SSE2_enable(
int flag
);
Parameters
flag
1 to enable the SSE2 implementation; 0 to disable the SSE2 implementation. By default, SSE2 implementation is enabled on processors that support it.
Return value
Nonzero if SSE2 implementation is enabled; zero if SSE2 implementation is disabled.
Remarks
The following functions have SSE2 implementations that can be enabled by using _set_SSE2_enable
:
The SSE2 implementations of these functions might give slightly different answers than the default implementations. SSE2 intermediate values are 64-bit floating-point quantities, but the default implementation intermediate values are 80-bit floating-point quantities.
Note
If you use the /Oi (Generate Intrinsic Functions) compiler option to compile the project, it may appear that _set_SSE2_enable
has no effect. The /Oi compiler option gives the compiler the authority to use intrinsics to replace CRT calls; this behavior overrides the effect of _set_SSE2_enable
. If you want to guarantee that /Oi does not override _set_SSE2_enable
, use /Oi- to compile your project. This might also be good practice when you use other compiler switches that imply /Oi.
The SSE2 implementation is only used if all exceptions are masked. Use _control87
, _controlfp
to mask exceptions.
Requirements
Routine | Required header |
---|---|
_set_SSE2_enable |
<math.h> |
For more compatibility information, see Compatibility.
Example
// 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.