AI Engine Intrinsics User Guide (AIE) v2024.2
|
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) |
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.
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.
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 | ( | v4int32 | 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.
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.
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.
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.
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.
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.
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 | ( | v8int16 | 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.