Source: Intel Software Network
This .inl file provides a C++ implementation of the Larrabee new instructions. It allows developers to experiment with developing Larrabee code without a Larrabee compiler and without Larrabee hardware. It does not attempt to match the Larrabee new instructions with respect to exceptions, flags, bit-precision, or memory alignment restrictions. Disclaimer: the exact syntax and semantics of the functions shown here are not guaranteed to be supported in future Larrabee hardware and software products.
The Larrabee new instructions are extensions of the existing Intel Architecture based vector graphics streaming SIMD instructions. They operate on two new sets of registers:
32 512-bit vector registers (v0-v31) that hold either 16 32-bit values or 8 64-bit values
8 16-bit vector mask registers (k0-k7) that hold 16 bit masks
The C++ Larrabee Prototype Library supports these data types with the following C objects:
typedef struct { float v[16]; } _M512
typedef struct { double v[8]; } _M512D
typedef struct { int v[16]; } _M512I
typedef unsigned short __mmask;


