AI Engine Intrinsics User Guide
(AIE) r2p23
|
Data Types | |
Scalar Data-types | All the standard C scalar data-types are supported |
Vector Data-types | |
Accumulator Types | |
320/384 bits Accumulator | |
640/768 bits Double Accumulator | |
Floating Point Accumulator Types | |
Floating Point Vector Types | |
Integer Vector Types | |
1024 bits Vectors | |
128 bits Vectors | |
256 bits Vectors | |
512 bits Vectors | |
Intrinsics | |
Application Specific Intrinsics | |
Digital Pre-Distortion | |
Direct Digital Synthesis (DDS) Interpolation | |
FFT intrinsics | |
Peak Cancellation Crest Factor Reduction (PC-CFR) | |
Load/Store Operations | |
Streams | |
Scalar Operations | |
AIE ID | |
Addressing Operations | |
Cyclic Addressing | |
FFT Addressing | |
Cycle Counter | |
Datatype Conversions | Support for converting floating-point numbers to fixed-point and fixed-point numbers to floating-point |
Delayed Scalar Moves | Intrinsic that returns its input after 6 clock cycles. Used for scheduling optimization |
Elementary Functions | |
Events | |
Integer Operations | |
AIE ID | |
Digital Pre-Distortion | |
Peak Cancellation Crest Factor Reduction (PC-CFR) | |
Locks | |
Vector Conversions | Various forms of conversions between vector data-types |
Casting | Casting intrinsics allow casting between vector types of the same size |
Concatenations | Vector concat intrinsic functions allow creating a bigger vector from two or four smaller ones |
Datatype Conversions | Support for converting floating-point vectors to fixed-point vectors and fixed-point vectors to floating-point vectors |
Extract | Extraction intrinsics enable lanes to be selected from vector and accumulator types |
Moves between Scalar and Vector Unit | These intrinsics allow inserting or extracting of an individual element into/from a vector |
Pack | |
Sets | Vector set intrinsic functions allow creating a vector where only one part is intitialized and the other parts are undefined |
Shift-Round-Saturate | Intrinsics for moving values from accumulator data-types to vector data-types |
Updates | Vector update intrinsic functions allow substitution of the lanes within a vector value |
Updates with memory load | |
Upshift | Intrinsics for moving values from vector data-types to accumulator data-types |
Vector Operations | |
Configuration | |
Mode Settings | Mode setting intrinsics to get and set bits in the control and status register |
Control register | Intrinsics to set, get and clear bits of the control register |
Status register | Intrinsics to set, get and clear bits of the status register |
Full Lane Addresssing Scheme | |
Initialization | |
MAC intrinsics | |
Multiplication | |
Advanced | |
Float | |
Integer | |
Simple | |
Self-Multiplication | |
Advanced | |
16 bit x 16 bit | |
32 bit x 32 bit | |
Simple | |
Reduced Lane Addressing Scheme | |
Vector Arithmetic | |
Advanced | |
Float | |
Integer | |
Simple | |
Vector Compares | |
Advanced | |
Vector Max/Min | |
Float | |
Integer | |
Vector MaxDiff | |
Vector comparison | |
Float | |
Integer | |
Simple | Lane by lane vector compare |
Vector Lane Selection | |
Advanced | |
Float | |
Integer | |
Simple | |
Float | |
Integer | |
Native stream access | These functions setup stream accesses in native mode |