AI Engine-ML Intrinsics User Guide  (v2023.2)
Vector Data Types

Overview

Vector data-types pack multiple scalar data elements into a wider vector. There are vector data-types with standard sized elements (4-bit, 8-bit, 16-bit, 32-bit).

The general naming convention for these data-types is shown below.

    v{NumLanes}[cu]int{SizeofElement}
    v{NumLanes}bfloat16

Disambiguation :

For example, v32uint4, v16int8, v8int16, v128int4, v32bfloat16

The total data-width of the vector data-types can be 8-bits, 16-bits, 32-bits, 64-bits, 128-bits, 256-bits, 512-bits, or 1024-bits.

Note
Vector data-types are stored in different sets of registers within the processor core. Large vectors (>256-bits) occupy more than one physical register. Register spills will reduce performance when more than one large register is 'live'.
Supported vector types and sizes
Scalar typeSupported vector lanes
int4/uint432/64/128/256
int8/uint816/32/64/128
int16/uint168/16/32/64
int32/uint324/8/16/32
cint162/4/8/16/32
cint322/4/8/16
bfloat168/16/32/64
float4/8/16/32
cfloat2/4/8/16

Modules

 Complex Vector Types
 
 Compressed Complex Vector Types
 
 Compressed Floating-Point Vector Types
 
 Compressed Integer Vector Types
 
 Compressed Sparse Vector Types
 
 Floating-Point Vector Types
 
 Integer Vector Types
 
 Sparse Vector Types