Intel® C++ Compiler 16.0 User and Reference Guide

Data Types for Intel® Many Integrated Core Architecture (Intel® MIC Architecture)

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:

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.

__m512 Data Types

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.

Data Type Usage Guidelines

The __m512 data types are not basic ANSI C data types. You must observe the following usage restrictions:

See Also