AI Engine Intrinsics User Guide
(AIE) v(2024.1)
|
Advanced Integer Vector Lane Selection
Select: Selects between the first set of lanes or the second one according to the value in 'select'. If the lane corresponding bit in select is 0 it returns the value in the first set of lanes,otherwise, if it is 1, it returns the value in the second set of lanes.
Shuffle: Shuffle selects from a single input acording to the start/offset computation.
To have more information in lane selection please refer to here.
Functions | |
v16int32 | select16 (unsigned int select, v32int32 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi) |
Performs a selection between lanes of xbuff. | |
v16int32 | select16 (unsigned int select, v16int32 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi) |
Performs a selection between lanes of xbuff. | |
v16int32 | select16 (unsigned int select, v16int32 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, v16int32 ybuff, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi) |
Performs a selection between lanes of xbuff and ybuff. | |
v16cint16 | select16 (unsigned int select, v32cint16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi) |
Performs a selection between lanes of xbuff. | |
v16cint16 | select16 (unsigned int select, v16cint16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi) |
Performs a selection between lanes of xbuff. | |
v16cint16 | select16 (unsigned int select, v16cint16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, v16cint16 ybuff, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi) |
Performs a selection between lanes of xbuff and ybuff. | |
v32int16 | select32 (unsigned int select, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi, unsigned int ysquare) |
Performs a selection between lanes of xbuff. | |
v32int16 | select32 (unsigned int select, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi, unsigned int ysquare) |
Performs a selection between lanes of xbuff. | |
v32int16 | select32 (unsigned int select, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int yoffsets, unsigned int yoffsets_hi, unsigned int ysquare) |
Performs a selection between lanes of xbuff and ybuff. | |
v8cint32 | select8 (unsigned int select, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets) |
Performs a selection between lanes of xbuff. | |
v8cint32 | select8 (unsigned int select, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets) |
Performs a selection between lanes of xbuff. | |
v8cint32 | select8 (unsigned int select, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets) |
Performs a selection between lanes of xbuff and ybuff. | |
v16int32 | shuffle16 (v32int32 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi) |
Performs a shuffle between lanes of xbuff. | |
v16int32 | shuffle16 (v16int32 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi) |
Performs a shuffle between lanes of xbuff. | |
v16cint16 | shuffle16 (v32cint16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi) |
Performs a shuffle between lanes of xbuff. | |
v16cint16 | shuffle16 (v16cint16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi) |
Performs a shuffle between lanes of xbuff. | |
v32int16 | shuffle32 (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare) |
Performs a shuffle between lanes of xbuff. | |
v32int16 | shuffle32 (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare) |
Performs a shuffle between lanes of xbuff. | |
v8cint32 | shuffle8 (v16cint32 xbuff, int xstart, unsigned int xoffsets) |
Performs a shuffle between lanes of xbuff. | |
v8cint32 | shuffle8 (v8cint32 xbuff, int xstart, unsigned int xoffsets) |
Performs a shuffle between lanes of xbuff. | |
v16int32 select16 | ( | unsigned int | select, |
v32int32 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 32 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v16int32 select16 | ( | unsigned int | select, |
v16int32 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 16 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v16int32 select16 | ( | unsigned int | select, |
v16int32 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
v16int32 | ybuff, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi | ||
) |
Performs a selection between lanes of xbuff and ybuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 16 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
ybuff | Input buffer of 16 elements with 32-bit precision |
ystart | Starting position offset applied to all lanes of input from ybuffer for the second input |
yoffsets | 4b offset for each lane, applied to the ybuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the ybuffer. LSB apply to 8th lane |
v16cint16 select16 | ( | unsigned int | select, |
v32cint16 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 32 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v16cint16 select16 | ( | unsigned int | select, |
v16cint16 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 16 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v16cint16 select16 | ( | unsigned int | select, |
v16cint16 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
v16cint16 | ybuff, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi | ||
) |
Performs a selection between lanes of xbuff and ybuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 16 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
ybuff | Input buffer of 16 elements with 16-bit precision |
ystart | Starting position offset applied to all lanes of input from ybuffer for the second input |
yoffsets | 4b offset for each lane, applied to the ybuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the ybuffer. LSB apply to 8th lane |
v32int16 select32 | ( | unsigned int | select, |
v64int16 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
unsigned int | xsquare, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi, | ||
unsigned int | ysquare | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 64 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 16th lane |
xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs to be less than 4. max value for this field is (0x3333) |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 16th lane |
ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs be less than 4. max value for this field is (0x3333) |
v32int16 select32 | ( | unsigned int | select, |
v32int16 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
unsigned int | xsquare, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi, | ||
unsigned int | ysquare | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 32 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 16th lane |
xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs to be less than 4. max value for this field is (0x3333) |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 16th lane |
ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs be less than 4. max value for this field is (0x3333) |
v32int16 select32 | ( | unsigned int | select, |
v32int16 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
unsigned int | xsquare, | ||
v32int16 | ybuff, | ||
int | ystart, | ||
unsigned int | yoffsets, | ||
unsigned int | yoffsets_hi, | ||
unsigned int | ysquare | ||
) |
Performs a selection between lanes of xbuff and ybuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 32 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 16th lane |
xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs to be less than 4. max value for this field is (0x3333) |
ybuff | Input buffer of 32 elements with 16-bit precision |
ystart | Starting position offset applied to all lanes of input from ybuffer for the second input |
yoffsets | 4b offset for each lane, applied to the ybuffer. LSB apply to first lane |
yoffsets_hi | 4b offset for each lane, applied to the ybuffer. LSB apply to 16th lane |
ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs be less than 4. max value for this field is (0x3333) |
v8cint32 select8 | ( | unsigned int | select, |
v16cint32 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
int | ystart, | ||
unsigned int | yoffsets | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 16 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 3b (aligned to 4b) offset for each lane, applied to the xbuffer. LSB apply to first lane |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 3b (aligned to 4b) offset for each lane in the xbuffer for the second input. LSB apply to first lane |
v8cint32 select8 | ( | unsigned int | select, |
v8cint32 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
int | ystart, | ||
unsigned int | yoffsets | ||
) |
Performs a selection between lanes of xbuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 8 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 3b (aligned to 4b) offset for each lane, applied to the xbuffer. LSB apply to first lane |
ystart | Starting position offset applied to all lanes of input from xbuffer for the second input |
yoffsets | 3b (aligned to 4b) offset for each lane in the xbuffer for the second input. LSB apply to first lane |
v8cint32 select8 | ( | unsigned int | select, |
v8cint32 | xbuff, | ||
int | xstart, | ||
unsigned int | xoffsets, | ||
v8cint32 | ybuff, | ||
int | ystart, | ||
unsigned int | yoffsets | ||
) |
Performs a selection between lanes of xbuff and ybuff.
select | Value of each bit selects from the value to be placed in the corresponding vector position |
xbuff | Input buffer of 8 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 3b (aligned to 4b) offset for each lane, applied to the xbuffer. LSB apply to first lane |
ybuff | Input buffer of 8 elements with 32-bit precision |
ystart | Starting position offset applied to all lanes of input from ybuffer for the second input |
yoffsets | 3b (aligned to 4b) offset for each lane in the ybuffer for the second input. LSB apply to first lane |
v16int32 shuffle16 | ( | v32int32 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 32 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v16int32 shuffle16 | ( | v16int32 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 16 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v16cint16 shuffle16 | ( | v32cint16 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 32 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v16cint16 shuffle16 | ( | v16cint16 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 16 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 8th lane |
v32int16 shuffle32 | ( | v64int16 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
unsigned int | xsquare | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 64 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 16th lane |
xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs to be less than 4. max value for this field is (0x3333) |
v32int16 shuffle32 | ( | v32int16 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets, | ||
unsigned int | xoffsets_hi, | ||
unsigned int | xsquare | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 32 elements with 16-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 4b offset for each lane, applied to the xbuffer. LSB apply to first lane |
xoffsets_hi | 4b offset for each lane, applied to the xbuffer. LSB apply to 16th lane |
xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element. Value per lane needs to be less than 4. max value for this field is (0x3333) |
v8cint32 shuffle8 | ( | v16cint32 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 16 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 3b (aligned to 4b) offset for each lane, applied to the xbuffer. LSB apply to first lane |
v8cint32 shuffle8 | ( | v8cint32 | xbuff, |
int | xstart, | ||
unsigned int | xoffsets | ||
) |
Performs a shuffle between lanes of xbuff.
xbuff | Input buffer of 8 elements with 32-bit precision |
xstart | Starting position offset applied to all lanes of input from X buffer |
xoffsets | 3b (aligned to 4b) offset for each lane, applied to the xbuffer. LSB apply to first lane |