The latest version of this topic can be found at __m128i.

Microsoft Specific
The __m128i data type, for use with the Streaming SIMD Extensions 2 (SSE2) instructions intrinsics, is defined in emmintrin.h.

// data_types__m128i.cpp  
#include <emmintrin.h>  
int main() {  
   __m128i x;  


You should not access the __m128i fields directly. You can, however, see these types in the debugger. A variable of type __m128i maps to the XMM[0-7] registers.

Variables of type _m128i are automatically aligned on 16-byte boundaries.


Using variables of type __m128i will cause the compiler to generate the SSE2 movdqa instruction. This instruction does not cause a fault on Pentium III processors but will result in silent failure, with possible side effects caused by whatever instructions movdqa translates into on Pentium III processors.

The __m128i data type is not supported on ARM processors.

END Microsoft Specific

See Also

Fundamental Types
Data Type Ranges