AI Engine Intrinsics User Guide  (AIE) v(2024.1)
 All Data Structures Namespaces Functions Variables Typedefs Groups Pages
16 bit Real x 16 bit Real

Overview

Vector MAC intrinsics with pre-adding with 16 bit real by 16 bit real

Functions

v16acc48 mac16_sym (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-accumulate intrinsic function with pre-add from x input buffer .
 
v16acc48 mac16_sym (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-accumulate intrinsic function with pre-add from x input buffer using small X input buffer.
 
v16acc48 mac16_sym (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-accumulate intrinsic function with pre-add from x and y input buffers using small X input buffer.
 
v8acc48 mac8_sym (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-accumulate intrinsic function with pre-add from x input buffer .
 
v8acc48 mac8_sym (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-accumulate intrinsic function with pre-add from x input buffer using small X input buffer.
 
v8acc48 mac8_sym (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-accumulate intrinsic function with pre-add from x and y input buffers using small X input buffer.
 
v16acc48 msc16_sym (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-subtract intrinsic function with pre-add from x input buffer .
 
v16acc48 msc16_sym (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-subtract intrinsic function with pre-add from x input buffer using small X input buffer.
 
v16acc48 msc16_sym (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-subtract intrinsic function with pre-add from x and y input buffers using small X input buffer.
 
v8acc48 msc8_sym (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-subtract intrinsic function with pre-add from x input buffer .
 
v8acc48 msc8_sym (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-subtract intrinsic function with pre-add from x input buffer using small X input buffer.
 
v8acc48 msc8_sym (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-subtract intrinsic function with pre-add from x and y input buffers using small X input buffer.
 
v16acc48 mul16_sym (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply intrinsic function with pre-add from x input buffer .
 
v16acc48 mul16_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply intrinsic function with pre-add from x input buffer using small X input buffer.
 
v16acc48 mul16_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply intrinsic function with pre-add from x and y input buffers using small X input buffer.
 
v8acc48 mul8_sym (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply intrinsic function with pre-add from x input buffer .
 
v8acc48 mul8_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply intrinsic function with pre-add from x input buffer using small X input buffer.
 
v8acc48 mul8_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply intrinsic function with pre-add from x and y input buffers using small X input buffer.
 
v16acc48 negmul16_sym (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-negate intrinsic function with pre-add from x input buffer .
 
v16acc48 negmul16_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-negate intrinsic function with pre-add from x input buffer using small X input buffer.
 
v16acc48 negmul16_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
 Symetric multiply-negate intrinsic function with pre-add from x and y input buffers using small X input buffer.
 
v8acc48 negmul8_sym (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-negate intrinsic function with pre-add from x input buffer .
 
v8acc48 negmul8_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-negate intrinsic function with pre-add from x input buffer using small X input buffer.
 
v8acc48 negmul8_sym (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Symetric multiply-negate intrinsic function with pre-add from x and y input buffers using small X input buffer.
 

Function Documentation

v16acc48 mac16_sym ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-accumulate intrinsic function with pre-add 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 += z80*(x80 + y80) + z81*(x81 + y81)
acc9 += z90*(x90 + y90) + z91*(x91 + y91)
acc10 += z100*(x100 + y100) + z101*(x101 + y101)
acc11 += z110*(x110 + y110) + z111*(x111 + y111)
acc12 += z120*(x120 + y120) + z121*(x121 + y121)
acc13 += z130*(x130 + y130) + z131*(x131 + y131)
acc14 += z140*(x140 + y140) + z141*(x141 + y141)
acc15 += z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
accIncoming accumulation vector (16 x int48 lanes)
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mac16_sym ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-accumulate intrinsic function with pre-add 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 += z80*(x80 + y80) + z81*(x81 + y81)
acc9 += z90*(x90 + y90) + z91*(x91 + y91)
acc10 += z100*(x100 + y100) + z101*(x101 + y101)
acc11 += z110*(x110 + y110) + z111*(x111 + y111)
acc12 += z120*(x120 + y120) + z121*(x121 + y121)
acc13 += z130*(x130 + y130) + z131*(x131 + y131)
acc14 += z140*(x140 + y140) + z141*(x141 + y141)
acc15 += z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
accIncoming accumulation vector (16 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mac16_sym ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-accumulate intrinsic function with pre-add 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 += z80*(x80 + y80) + z81*(x81 + y81)
acc9 += z90*(x90 + y90) + z91*(x91 + y91)
acc10 += z100*(x100 + y100) + z101*(x101 + y101)
acc11 += z110*(x110 + y110) + z111*(x111 + y111)
acc12 += z120*(x120 + y120) + z121*(x121 + y121)
acc13 += z130*(x130 + y130) + z131*(x131 + y131)
acc14 += z140*(x140 + y140) + z141*(x141 + y141)
acc15 += z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
accIncoming accumulation vector (16 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mac8_sym ( v8acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-accumulate intrinsic function with pre-add from x input buffer .

acc0 += z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 += z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 += z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 += z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 += z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 += z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 += z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 += z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
accIncoming accumulation vector (8 x int48 lanes)
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mac8_sym ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-accumulate intrinsic function with pre-add from x input buffer using small X input buffer.

acc0 += z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 += z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 += z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 += z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 += z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 += z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 += z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 += z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
accIncoming accumulation vector (8 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mac8_sym ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-accumulate intrinsic function with pre-add from x and y input buffers using small X input buffer.

acc0 += z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 += z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 += z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 += z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 += z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 += z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 += z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 += z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
accIncoming accumulation vector (8 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc16_sym ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-subtract intrinsic function with pre-add 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 -= z80*(x80 + y80) + z81*(x81 + y81)
acc9 -= z90*(x90 + y90) + z91*(x91 + y91)
acc10 -= z100*(x100 + y100) + z101*(x101 + y101)
acc11 -= z110*(x110 + y110) + z111*(x111 + y111)
acc12 -= z120*(x120 + y120) + z121*(x121 + y121)
acc13 -= z130*(x130 + y130) + z131*(x131 + y131)
acc14 -= z140*(x140 + y140) + z141*(x141 + y141)
acc15 -= z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
accIncoming accumulation vector (16 x int48 lanes)
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc16_sym ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-subtract intrinsic function with pre-add 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 -= z80*(x80 + y80) + z81*(x81 + y81)
acc9 -= z90*(x90 + y90) + z91*(x91 + y91)
acc10 -= z100*(x100 + y100) + z101*(x101 + y101)
acc11 -= z110*(x110 + y110) + z111*(x111 + y111)
acc12 -= z120*(x120 + y120) + z121*(x121 + y121)
acc13 -= z130*(x130 + y130) + z131*(x131 + y131)
acc14 -= z140*(x140 + y140) + z141*(x141 + y141)
acc15 -= z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
accIncoming accumulation vector (16 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc16_sym ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-subtract intrinsic function with pre-add 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 -= z80*(x80 + y80) + z81*(x81 + y81)
acc9 -= z90*(x90 + y90) + z91*(x91 + y91)
acc10 -= z100*(x100 + y100) + z101*(x101 + y101)
acc11 -= z110*(x110 + y110) + z111*(x111 + y111)
acc12 -= z120*(x120 + y120) + z121*(x121 + y121)
acc13 -= z130*(x130 + y130) + z131*(x131 + y131)
acc14 -= z140*(x140 + y140) + z141*(x141 + y141)
acc15 -= z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
accIncoming accumulation vector (16 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 msc8_sym ( v8acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-subtract intrinsic function with pre-add from x input buffer .

acc0 -= z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 -= z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 -= z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 -= z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 -= z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 -= z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 -= z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 -= z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
accIncoming accumulation vector (8 x int48 lanes)
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 msc8_sym ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-subtract intrinsic function with pre-add from x input buffer using small X input buffer.

acc0 -= z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 -= z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 -= z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 -= z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 -= z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 -= z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 -= z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 -= z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
accIncoming accumulation vector (8 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 msc8_sym ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-subtract intrinsic function with pre-add from x and y input buffers using small X input buffer.

acc0 -= z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 -= z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 -= z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 -= z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 -= z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 -= z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 -= z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 -= z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
accIncoming accumulation vector (8 x int48 lanes)
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul16_sym ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply intrinsic function with pre-add 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 = z80*(x80 + y80) + z81*(x81 + y81)
acc9 = z90*(x90 + y90) + z91*(x91 + y91)
acc10 = z100*(x100 + y100) + z101*(x101 + y101)
acc11 = z110*(x110 + y110) + z111*(x111 + y111)
acc12 = z120*(x120 + y120) + z121*(x121 + y121)
acc13 = z130*(x130 + y130) + z131*(x131 + y131)
acc14 = z140*(x140 + y140) + z141*(x141 + y141)
acc15 = z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul16_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply intrinsic function with pre-add 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 = z80*(x80 + y80) + z81*(x81 + y81)
acc9 = z90*(x90 + y90) + z91*(x91 + y91)
acc10 = z100*(x100 + y100) + z101*(x101 + y101)
acc11 = z110*(x110 + y110) + z111*(x111 + y111)
acc12 = z120*(x120 + y120) + z121*(x121 + y121)
acc13 = z130*(x130 + y130) + z131*(x131 + y131)
acc14 = z140*(x140 + y140) + z141*(x141 + y141)
acc15 = z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul16_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply intrinsic function with pre-add 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 = z80*(x80 + y80) + z81*(x81 + y81)
acc9 = z90*(x90 + y90) + z91*(x91 + y91)
acc10 = z100*(x100 + y100) + z101*(x101 + y101)
acc11 = z110*(x110 + y110) + z111*(x111 + y111)
acc12 = z120*(x120 + y120) + z121*(x121 + y121)
acc13 = z130*(x130 + y130) + z131*(x131 + y131)
acc14 = z140*(x140 + y140) + z141*(x141 + y141)
acc15 = z150*(x150 + y150) + z151*(x151 + y151)
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mul8_sym ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply intrinsic function with pre-add from x input buffer .

acc0 = z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 = z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 = z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 = z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 = z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 = z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 = z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 = z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mul8_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply intrinsic function with pre-add from x input buffer using small X input buffer.

acc0 = z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 = z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 = z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 = z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 = z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 = z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 = z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 = z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mul8_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply intrinsic function with pre-add from x and y input buffers using small X input buffer.

acc0 = z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03)
acc1 = z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13)
acc2 = z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23)
acc3 = z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33)
acc4 = z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43)
acc5 = z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53)
acc6 = z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63)
acc7 = z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73)
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul16_sym ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-negate intrinsic function with pre-add 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 = -( z80*(x80 + y80) + z81*(x81 + y81) )
acc9 = -( z90*(x90 + y90) + z91*(x91 + y91) )
acc10 = -( z100*(x100 + y100) + z101*(x101 + y101) )
acc11 = -( z110*(x110 + y110) + z111*(x111 + y111) )
acc12 = -( z120*(x120 + y120) + z121*(x121 + y121) )
acc13 = -( z130*(x130 + y130) + z131*(x131 + y131) )
acc14 = -( z140*(x140 + y140) + z141*(x141 + y141) )
acc15 = -( z150*(x150 + y150) + z151*(x151 + y151) )
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul16_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-negate intrinsic function with pre-add 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 = -( z80*(x80 + y80) + z81*(x81 + y81) )
acc9 = -( z90*(x90 + y90) + z91*(x91 + y91) )
acc10 = -( z100*(x100 + y100) + z101*(x101 + y101) )
acc11 = -( z110*(x110 + y110) + z111*(x111 + y111) )
acc12 = -( z120*(x120 + y120) + z121*(x121 + y121) )
acc13 = -( z130*(x130 + y130) + z131*(x131 + y131) )
acc14 = -( z140*(x140 + y140) + z141*(x141 + y141) )
acc15 = -( z150*(x150 + y150) + z151*(x151 + y151) )
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul16_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep 
)

Symetric multiply-negate intrinsic function with pre-add 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 = -( z80*(x80 + y80) + z81*(x81 + y81) )
acc9 = -( z90*(x90 + y90) + z91*(x91 + y91) )
acc10 = -( z100*(x100 + y100) + z101*(x101 + y101) )
acc11 = -( z110*(x110 + y110) + z111*(x111 + y111) )
acc12 = -( z120*(x120 + y120) + z121*(x121 + y121) )
acc13 = -( z130*(x130 + y130) + z131*(x131 + y131) )
acc14 = -( z140*(x140 + y140) + z141*(x141 + y141) )
acc15 = -( z150*(x150 + y150) + z151*(x151 + y151) )
Returns
Returned accumulation vector (16 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
xoffsets_hi4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zoffsets_hi4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 negmul8_sym ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-negate intrinsic function with pre-add from x input buffer .

acc0 = -( z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03) )
acc1 = -( z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13) )
acc2 = -( z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23) )
acc3 = -( z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33) )
acc4 = -( z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43) )
acc5 = -( z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53) )
acc6 = -( z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63) )
acc7 = -( z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73) )
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
xbuffInput buffer of 64 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 negmul8_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-negate intrinsic function with pre-add from x input buffer using small X input buffer.

acc0 = -( z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03) )
acc1 = -( z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13) )
acc2 = -( z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23) )
acc3 = -( z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33) )
acc4 = -( z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43) )
acc5 = -( z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53) )
acc6 = -( z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63) )
acc7 = -( z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73) )
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ystartStarting position offset applied to all lanes for input from Y buffer.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 negmul8_sym ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int16  ybuff,
int  ystart,
unsigned int  ysquare,
v16int16  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Symetric multiply-negate intrinsic function with pre-add from x and y input buffers using small X input buffer.

acc0 = -( z00*(x00 + y00) + z01*(x01 + y01) + z02*(x02 + y02) + z03*(x03 + y03) )
acc1 = -( z10*(x10 + y10) + z11*(x11 + y11) + z12*(x12 + y12) + z13*(x13 + y13) )
acc2 = -( z20*(x20 + y20) + z21*(x21 + y21) + z22*(x22 + y22) + z23*(x23 + y23) )
acc3 = -( z30*(x30 + y30) + z31*(x31 + y31) + z32*(x32 + y32) + z33*(x33 + y33) )
acc4 = -( z40*(x40 + y40) + z41*(x41 + y41) + z42*(x42 + y42) + z43*(x43 + y43) )
acc5 = -( z50*(x50 + y50) + z51*(x51 + y51) + z52*(x52 + y52) + z53*(x53 + y53) )
acc6 = -( z60*(x60 + y60) + z61*(x61 + y61) + z62*(x62 + y62) + z63*(x63 + y63) )
acc7 = -( z70*(x70 + y70) + z71*(x71 + y71) + z72*(x72 + y72) + z73*(x73 + y73) )
Returns
Returned accumulation vector (8 x int48 lanes)
Parameters
xbuffInput buffer of 32 elements of type int16
xstartStarting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to both x and y buffers. LSB apply to first lane
xstepStep between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
ybuffRight input buffer of 32 elements of type int16
ystartStarting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
ysquareSelect order of the mini-permute square (default=0x3210). LSB apply to first element
zbuffInput buffer of 16 elements of type int16
zstartStarting 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.
zoffsets4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstepStep between each column for selection in the zbuffer.
Note
  • This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  • For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  • Parameter 'zstart' must be a compile time constant.