# Integer Vector Classes

The Ivec classes provide an interface to single instruction, multiple data (SIMD) processing using integer vectors of various sizes. The class hierarchy is represented in the following figure.

Ivec Class Hierarchy

The M64 and M128 classes define the __m64 and __m128i data types from which the rest of the Ivec classes are derived. The first generation of child classes (the intermediate classes) are derived on element sizes of 128, 64, 32, 16, and 8 bits:

I128vec1, I64vec1, I64vec2, I32vec2, I32vec4, I16vec4, I16vec8, I8vec8, I8vec16

The second generation specify the signedness:

Is64vec2, Iu64vec2, Is32vec2, Iu32vec2, Is32vec4, Iu32vec4, Is16vec4, Iu16vec4, Is16vec8, Iu16vec8, Is8vec8, Iu8vec8, Is8vec16, Iu8vec16

### CAUTION

Intermixing the M64 and M128 data types will result in unexpected behavior.

Parent topic: Intel® C++ Class Libraries

- Terms, Conventions, and Syntax Defined
- Rules for Operators
- Assignment Operator
- Logical Operators
- Addition and Subtraction Operators
- Multiplication Operators
- Shift Operators
- Comparison Operators
- Conditional Select Operators
- Debug Operations
- Unpack Operators
- Pack Operators
- Clear MMX™ State Operator
- Integer Functions for Streaming SIMD Extensions
- Conversions between Fvec and Ivec