AI Engine Intrinsics User Guide
(AIE) v(2024.1)
|
Intrinsics for moving values from vector data types to accumulator data types. More...
Intrinsics for moving values from vector data types to accumulator data types.
Moving data from vector data types to accumulator data types (e.g. for initialization) requires adjustment in precision because the accumulator data types are wider in size. For fixed point arithmetic, an appropriate left shift operation would align the decimal point between the two representations. The shift amount is specified as a parameter (in the range -1 to 62 which will be encoded as 0..63 in the instruction).
There are two variants of the UPS intrinsics based on width of input and output data types:
256-bit vector to 768-bit accumulator conversions | |
v16acc48 | ups (v16int16 a, int shft) |
v8cacc48 | ups (v8cint16 a, int shft) |
v8acc80 | lups (v8int32 a, int shft) |
v4cacc80 | lups (v4cint32 a, int shft) |
256-bit vector to 384-bit accumulator conversions | |
v8acc48 | ups (v8int32 a, int shft) |
v4cacc48 | ups (v4cint32 a, int shft) |
v4acc80 | lups (v4int64 a, int shft) |
v2cacc80 | lups (v2cint64 a, int shft) |
128-bit vector to 384-bit accumulator conversions | |
v8acc48 | ups (v8int16 a, int shft) |
v4cacc48 | ups (v4cint16 a, int shft) |
v4acc80 | lups (v4int32 a, int shft) |
v2cacc80 | lups (v2cint32 a, int shft) |
128-bit vector to 768-bit accumulator conversions | |
v16acc48 | ups (v16int8 a, int shft) |
v16acc48 | ups (v16uint8 a, int shft) |
v8acc80 lups | ( | v8int32 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v4cacc80 lups | ( | v4cint32 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v4acc80 lups | ( | v4int64 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v2cacc80 lups | ( | v2cint64 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v4acc80 lups | ( | v4int32 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v2cacc80 lups | ( | v2cint32 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v16acc48 ups | ( | v16int16 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v8cacc48 ups | ( | v8cint16 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v8acc48 ups | ( | v8int32 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v4cacc48 ups | ( | v4cint32 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v8acc48 ups | ( | v8int16 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v4cacc48 ups | ( | v4cint16 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v16acc48 ups | ( | v16int8 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.
v16acc48 ups | ( | v16uint8 | a, |
int | shft | ||
) |
shft parameter is in the range of -1 to 62 which will encoded as 0..63 in the instruction.