![]() |
AI Engine-ML Intrinsics User Guide
(v2023.2)
|
▼Accumulator Data Types | |
Complex Accumulator Types | |
Floating-Point Accumulator Types | |
►Integer Accumulator Types | |
▼Load/Store Operations | The compiler supports pointer dereferencing and pointer arithmetic. No special intrinsics are needed to load or store vectors. For example: |
Addressing intrinsics | |
►Compressed Load Operations | Compressed load operations load a compressed vector and expand it into an AIE-ML register |
►Compressed Sparse Load Operations | Compressed sparse load operations load a compressed sparse vector and expand it into an AIE-ML register |
Load 4x Operations | Load 4x intrinsics load four 64-bit values to a vector register from data memory |
►Streams | |
Scalar Data Types | All the standard C scalar data-types are supported |
▼Scalar Operations | Intrinsics to operate on floating point/integer scalar values, configuration, conversions, locks and events |
►Configuration | |
Core ID | |
Cycle Counter | |
Events | |
Initialization | |
Integer Operations | Intrinsics allowing you to perform select, absolute and delay operations on integer scalars |
Locks | Intrinsics to acquire and release locks |
Scalar Conversions | |
Scalar updates and extracts | |
Stream access | These functions setup stream accesses in native mode |
▼Vector Conversions | Various forms of conversions between vector data-types |
►Broadcast | Broadcasts input value to all vector lanes |
Casting | Casting intrinsics allow casting (bit-reinterpretation) between vector types of the same size |
►Concatenate vectors | Vector concat intrinsic functions allow concatenation of vector values to create a larger one |
►Extract vector | Extraction intrinsics enable lanes to be selected from vector and accumulator types |
Extract/insert element | These intrinsics allow inserting or extracting of an individual element into/from a vector |
Float to integer conversions | Conversion from bfloat16 vector to integer vector |
►Insert vector | Vector insert intrinsic functions allow substitution of the lanes within a vector value |
Pack/Unpack | |
►Set vector | Vector set intrinsic functions allow setting the lanes within a vector value |
►Shift-Round-Saturate | Intrinsics for moving values from accumulator data-types to vector data-types |
►Upshift | Intrinsics for moving values from vector data-types to accumulator data-types |
▼Vector Data Types | |
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 | |
▼Vector Operations | |
Add/Subtract | Intrinsics and operators that allows you to perform addition and substraction operations on all types of vectors |
Bitwise logical | Intrinsics and operators that allows you to perform bitwise logical operations on all types of vectors |
Compare/Select | Intrinsics allowing you to perform compare and select operations on all types of vectors |
Initialization | |
►Multiply Accumulate | Intrinsics allowing you to perform MUL/MAC operations and a few of their variants |
Shift | These intrinsics allow shifting full vectors |
Shift element | |
►Shuffle | Intrinsics allowing you perform vector shuffles |