Intel® C++ Compiler XE 13.1 User and Reference Guides
This topic only applies to Intel® MIC Architecture.
These class libraries include:
Integer vector classes
Floating-point vector classes
You can find the definitions for these classes in the header file: micvec.h.
These class libraries for SIMD operations provide a convenient interface to access the underlying instructions for processors as specified in Processor Requirements for Use of Class Libraries. These processor-instruction extensions enable parallel processing using the single instruction-multiple data (SIMD) technique as illustrated in the following figure:

Performing sixteen operations with a single instruction improves efficiency by a factor of sixteen for that particular instruction.
These new processor instructions can be implemented using assembly inlining, intrinsics, or Intel® Many Integrated Core (Intel® MIC) SIMD classes. Compare the coding required to add sixteen 32-bit floating-point values, using each of the available interfaces:
The following table shows an addition of two single-precision floating-point values using assembly inlining, intrinsics, and the libraries.
| Assembly Inlining | Intrinsics | SIMD Class Libraries |
|---|---|---|
__m512 a,b,c;
__asm{ vloadd v0,b
vloadd v1,c
vaddps v0,v1
vstored a, v0 }
|
#include <immintrin.h> ... __M512 a,b,c; a = _mm512_add_ps(b,c); ... |
#include <micvec.h> ... F32vec16 a,b,c; a = b + c; ... |