Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Enables or disables the use of Streaming SIMD Extensions 2 Instructions (SSE2) instructions in CRT math routines.

int _set_SSE2_enable(
   int flag


1 for enabling the SSE2 implementation. 0 for disabling the SSE2 implementation. By default, SSE2 implementation is enabled on processors that support it.

Nonzero if SSE2 implementation is enabled; zero if SSE2 implementation is disabled.

The following functions have SSE2 implementations that can be enabled with _set_SSE2_enable:

The SSE2 implementation might give slightly different answers from the default implementations of these functions, because SSE2 intermediate values are 64-bit floating-point quantities but the default implementation intermediate values are 80-bit floating-point quantities.

The SSE2 implementation is only used if all exceptions are masked. Use _control87, _controlfp to mask exceptions.


Required header



For more compatibility information, see Compatibility in the Introduction.

// 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");
      printf("SSE2 not enabled; processor does not support SSE2.\n");
SSE2 enabled.

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

© 2015 Microsoft