AI Engine Intrinsics  (AIE) r2p21
 All Data Structures Namespaces Functions Variables Typedefs Groups Pages
16 bit Real x 32 bit Real

Overview

Vector MAC intrinsics with pre-subtraction and upshifting with 16 bit real by 32 bit real

Functions

v16acc48 mac8_antisym_uct (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-accumulate intrinsic function with unit center-tap optimization with pre-sub from x input buffer .
 
v16acc48 mac8_antisym_uct (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-accumulate intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.
 
v16acc48 mac8_antisym_uct (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, v32int16 ybuff, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-accumulate intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.
 
v16acc48 msc8_antisym_uct (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-subtract intrinsic function with unit center-tap optimization with pre-sub from x input buffer .
 
v16acc48 msc8_antisym_uct (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-subtract intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.
 
v16acc48 msc8_antisym_uct (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, v32int16 ybuff, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-subtract intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.
 
v16acc48 mul8_antisym_uct (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply intrinsic function with unit center-tap optimization with pre-sub from x input buffer .
 
v16acc48 mul8_antisym_uct (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.
 
v16acc48 mul8_antisym_uct (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, v32int16 ybuff, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.
 
v16acc48 negmul8_antisym_uct (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-negate intrinsic function with unit center-tap optimization with pre-sub from x input buffer .
 
v16acc48 negmul8_antisym_uct (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-negate intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.
 
v16acc48 negmul8_antisym_uct (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, v32int16 ybuff, int ystart, int uct_col, int uct_shift, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Anti-symmetric multiply-negate intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.
 

Function Documentation

v16acc48 mac8_antisym_uct ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-accumulate intrinsic function with unit center-tap optimization with pre-sub from x input buffer .

acc0 += z00*(x00 - y00) + z01*(x01 - y01)
acc1 += z10*(x10 - y10) + z11*(x11 - y11)
acc2 += z20*(x20 - y20) + z21*(x21 - y21)
acc3 += z30*(x30 - y30) + z31*(x31 - y31)
acc4 += z40*(x40 - y40) + z41*(x41 - y41)
acc5 += z50*(x50 - y50) + z51*(x51 - y51)
acc6 += z60*(x60 - y60) + z61*(x61 - y61)
acc7 += z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
acc v16acc48 Incoming accumulation vector (16 x int48 lanes)
xbuff v64int16Input buffer of 64 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mac8_antisym_uct ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-accumulate intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.

acc0 += z00*(x00 - y00) + z01*(x01 - y01)
acc1 += z10*(x10 - y10) + z11*(x11 - y11)
acc2 += z20*(x20 - y20) + z21*(x21 - y21)
acc3 += z30*(x30 - y30) + z31*(x31 - y31)
acc4 += z40*(x40 - y40) + z41*(x41 - y41)
acc5 += z50*(x50 - y50) + z51*(x51 - y51)
acc6 += z60*(x60 - y60) + z61*(x61 - y61)
acc7 += z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
acc v16acc48 Incoming accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mac8_antisym_uct ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
v32int16  ybuff,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-accumulate intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.

acc0 += z00*(x00 - y00) + z01*(x01 - y01)
acc1 += z10*(x10 - y10) + z11*(x11 - y11)
acc2 += z20*(x20 - y20) + z21*(x21 - y21)
acc3 += z30*(x30 - y30) + z31*(x31 - y31)
acc4 += z40*(x40 - y40) + z41*(x41 - y41)
acc5 += z50*(x50 - y50) + z51*(x51 - y51)
acc6 += z60*(x60 - y60) + z61*(x61 - y61)
acc7 += z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
acc v16acc48 Incoming accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ybuff v32int16Right input buffer of 32 elements of type int16
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc8_antisym_uct ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-subtract intrinsic function with unit center-tap optimization with pre-sub from x input buffer .

acc0 -= z00*(x00 - y00) + z01*(x01 - y01)
acc1 -= z10*(x10 - y10) + z11*(x11 - y11)
acc2 -= z20*(x20 - y20) + z21*(x21 - y21)
acc3 -= z30*(x30 - y30) + z31*(x31 - y31)
acc4 -= z40*(x40 - y40) + z41*(x41 - y41)
acc5 -= z50*(x50 - y50) + z51*(x51 - y51)
acc6 -= z60*(x60 - y60) + z61*(x61 - y61)
acc7 -= z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
acc v16acc48 Incoming accumulation vector (16 x int48 lanes)
xbuff v64int16Input buffer of 64 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc8_antisym_uct ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-subtract intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.

acc0 -= z00*(x00 - y00) + z01*(x01 - y01)
acc1 -= z10*(x10 - y10) + z11*(x11 - y11)
acc2 -= z20*(x20 - y20) + z21*(x21 - y21)
acc3 -= z30*(x30 - y30) + z31*(x31 - y31)
acc4 -= z40*(x40 - y40) + z41*(x41 - y41)
acc5 -= z50*(x50 - y50) + z51*(x51 - y51)
acc6 -= z60*(x60 - y60) + z61*(x61 - y61)
acc7 -= z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
acc v16acc48 Incoming accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc8_antisym_uct ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
v32int16  ybuff,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-subtract intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.

acc0 -= z00*(x00 - y00) + z01*(x01 - y01)
acc1 -= z10*(x10 - y10) + z11*(x11 - y11)
acc2 -= z20*(x20 - y20) + z21*(x21 - y21)
acc3 -= z30*(x30 - y30) + z31*(x31 - y31)
acc4 -= z40*(x40 - y40) + z41*(x41 - y41)
acc5 -= z50*(x50 - y50) + z51*(x51 - y51)
acc6 -= z60*(x60 - y60) + z61*(x61 - y61)
acc7 -= z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
acc v16acc48 Incoming accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ybuff v32int16Right input buffer of 32 elements of type int16
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul8_antisym_uct ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply intrinsic function with unit center-tap optimization with pre-sub from x input buffer .

acc0 = z00*(x00 - y00) + z01*(x01 - y01)
acc1 = z10*(x10 - y10) + z11*(x11 - y11)
acc2 = z20*(x20 - y20) + z21*(x21 - y21)
acc3 = z30*(x30 - y30) + z31*(x31 - y31)
acc4 = z40*(x40 - y40) + z41*(x41 - y41)
acc5 = z50*(x50 - y50) + z51*(x51 - y51)
acc6 = z60*(x60 - y60) + z61*(x61 - y61)
acc7 = z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
xbuff v64int16Input buffer of 64 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul8_antisym_uct ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.

acc0 = z00*(x00 - y00) + z01*(x01 - y01)
acc1 = z10*(x10 - y10) + z11*(x11 - y11)
acc2 = z20*(x20 - y20) + z21*(x21 - y21)
acc3 = z30*(x30 - y30) + z31*(x31 - y31)
acc4 = z40*(x40 - y40) + z41*(x41 - y41)
acc5 = z50*(x50 - y50) + z51*(x51 - y51)
acc6 = z60*(x60 - y60) + z61*(x61 - y61)
acc7 = z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul8_antisym_uct ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
v32int16  ybuff,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.

acc0 = z00*(x00 - y00) + z01*(x01 - y01)
acc1 = z10*(x10 - y10) + z11*(x11 - y11)
acc2 = z20*(x20 - y20) + z21*(x21 - y21)
acc3 = z30*(x30 - y30) + z31*(x31 - y31)
acc4 = z40*(x40 - y40) + z41*(x41 - y41)
acc5 = z50*(x50 - y50) + z51*(x51 - y51)
acc6 = z60*(x60 - y60) + z61*(x61 - y61)
acc7 = z70*(x70 - y70) + z71*(x71 - y71)
acc8 = y0uct_select << uct_shift
acc9 = y1uct_select << uct_shift
acc10 = y2uct_select << uct_shift
acc11 = y3uct_select << uct_shift
acc12 = y4uct_select << uct_shift
acc13 = y5uct_select << uct_shift
acc14 = y6uct_select << uct_shift
acc15 = y7uct_select << uct_shift

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ybuff v32int16Right input buffer of 32 elements of type int16
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul8_antisym_uct ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-negate intrinsic function with unit center-tap optimization with pre-sub from x input buffer .

acc0 = -( z00*(x00 - y00) + z01*(x01 - y01) )
acc1 = -( z10*(x10 - y10) + z11*(x11 - y11) )
acc2 = -( z20*(x20 - y20) + z21*(x21 - y21) )
acc3 = -( z30*(x30 - y30) + z31*(x31 - y31) )
acc4 = -( z40*(x40 - y40) + z41*(x41 - y41) )
acc5 = -( z50*(x50 - y50) + z51*(x51 - y51) )
acc6 = -( z60*(x60 - y60) + z61*(x61 - y61) )
acc7 = -( z70*(x70 - y70) + z71*(x71 - y71) )
acc8 = y0uct_select << uct_shift )
acc9 = y1uct_select << uct_shift )
acc10 = y2uct_select << uct_shift )
acc11 = y3uct_select << uct_shift )
acc12 = y4uct_select << uct_shift )
acc13 = y5uct_select << uct_shift )
acc14 = y6uct_select << uct_shift )
acc15 = y7uct_select << uct_shift )

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
xbuff v64int16Input buffer of 64 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul8_antisym_uct ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-negate intrinsic function with unit center-tap optimization with pre-sub from x input buffer using small X input buffer.

acc0 = -( z00*(x00 - y00) + z01*(x01 - y01) )
acc1 = -( z10*(x10 - y10) + z11*(x11 - y11) )
acc2 = -( z20*(x20 - y20) + z21*(x21 - y21) )
acc3 = -( z30*(x30 - y30) + z31*(x31 - y31) )
acc4 = -( z40*(x40 - y40) + z41*(x41 - y41) )
acc5 = -( z50*(x50 - y50) + z51*(x51 - y51) )
acc6 = -( z60*(x60 - y60) + z61*(x61 - y61) )
acc7 = -( z70*(x70 - y70) + z71*(x71 - y71) )
acc8 = y0uct_select << uct_shift )
acc9 = y1uct_select << uct_shift )
acc10 = y2uct_select << uct_shift )
acc11 = y3uct_select << uct_shift )
acc12 = y4uct_select << uct_shift )
acc13 = y5uct_select << uct_shift )
acc14 = y6uct_select << uct_shift )
acc15 = y7uct_select << uct_shift )

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul8_antisym_uct ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
v32int16  ybuff,
int  ystart,
int  uct_col,
int  uct_shift,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Anti-symmetric multiply-negate intrinsic function with unit center-tap optimization with pre-sub from x and y input buffers using small X input buffer.

acc0 = -( z00*(x00 - y00) + z01*(x01 - y01) )
acc1 = -( z10*(x10 - y10) + z11*(x11 - y11) )
acc2 = -( z20*(x20 - y20) + z21*(x21 - y21) )
acc3 = -( z30*(x30 - y30) + z31*(x31 - y31) )
acc4 = -( z40*(x40 - y40) + z41*(x41 - y41) )
acc5 = -( z50*(x50 - y50) + z51*(x51 - y51) )
acc6 = -( z60*(x60 - y60) + z61*(x61 - y61) )
acc7 = -( z70*(x70 - y70) + z71*(x71 - y71) )
acc8 = y0uct_select << uct_shift )
acc9 = y1uct_select << uct_shift )
acc10 = y2uct_select << uct_shift )
acc11 = y3uct_select << uct_shift )
acc12 = y4uct_select << uct_shift )
acc13 = y5uct_select << uct_shift )
acc14 = y6uct_select << uct_shift )
acc15 = y7uct_select << uct_shift )

Parameters

Input/OutputType Comments
return v16acc48 Returned accumulation vector (16 x int48 lanes)
xbuff v32int16Input buffer of 32 elements of type int16
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
xstep unsigned int Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep).
ybuff v32int16Right input buffer of 32 elements of type int16
ystart int Starting position offset applied to all lanes for input from Y buffer.
uct_col int Select which column of data from the Y buffer to upshift for the lower half of the output accumulator. This must be a compile time constant.
uct_shift int Upshift value to the four upshifted lanes
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.