Intel® C++ Compiler 16.0 User and Reference Guide
This topic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
Intrinsic functions for Intel® Many Integrated Core Architecture (Intel® MIC Architecture) use a set of C data types as operands:
__m512 data types (__m512, __m512i, and __m512d)
These data types map directly to the v vector registers.
Another data type, __mmask16, is an unsigned short type associated with the mask register values.
The __m512 data types are used to represent the contents of a vector graphic streaming SIMD extension register used by these intrinsic functions.
The header file immintrin.h declares the following __m512 data types for the 512-bit vectors:
Data type | For |
---|---|
__m512 | a single precision floating point vector (float32 vector) |
__m512i | an integer 32-bit vector and an integer 64-bit vector (int32/int64 vector) |
__m512d | a double precision floating point vector (float64 vector) |
Therefore, the __m512 data types can hold sixteen (16) 32-bit floating-point/integer values or eight (8) 64-bit floating point/integer values. In other words, a vector consists of sixteen double-word size elements or eight quad-word size elements.
The compiler aligns __m512 local and global data to 64-byte boundaries on the stack. To align integer, float, or double arrays, you can use the declspec align(64) statement.
The __m512 data types are not basic ANSI C data types. You must observe the following usage restrictions: