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


Microsoft Specific

The __m128i data type, for use with the Streaming SIMD Extensions 2 (SSE2) instructions intrinsics, is defined as follows:

// data_types__m128i.cpp
typedef union __declspec(intrin_type) __declspec(align(16)) __m128i {
   __int8 m128i_i8[16];
   __int16 m128i_i16[8];
   __int32 m128i_i32[4];
   __int64 m128i_i64[2];
   unsigned __int8 m128i_u8[16];
   unsigned __int16 m128i_u16[8];
   unsigned __int32 m128i_u32[4];
   unsigned __int64 m128i_u64[2];
} __m128i;

int main()

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.

Note   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.

END Microsoft Specific

See Also

C++ Keywords | Fundamental Types | Data Type Ranges

© 2015 Microsoft