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

Overview

Vector MAC intrinsics with 16 bit real by 8 bit real

Functions

v16acc48 mac16 (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function .
 
v16acc48 mac16 (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function using small X input buffer.
 
v16acc48 mac16 (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function .
 
v16acc48 mac16 (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function using small X input buffer.
 
v8acc48 mac8 (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function .
 
v8acc48 mac8 (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function using small X input buffer.
 
v8acc48 mac8 (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function .
 
v8acc48 mac8 (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-accumulate intrinsic function using small X input buffer.
 
v16acc48 msc16 (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function .
 
v16acc48 msc16 (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function using small X input buffer.
 
v16acc48 msc16 (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function .
 
v16acc48 msc16 (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function using small X input buffer.
 
v8acc48 msc8 (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function .
 
v8acc48 msc8 (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function using small X input buffer.
 
v8acc48 msc8 (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function .
 
v8acc48 msc8 (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-subtract intrinsic function using small X input buffer.
 
v16acc48 mul16 (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply intrinsic function .
 
v16acc48 mul16 (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply intrinsic function using small X input buffer.
 
v16acc48 mul16 (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply intrinsic function .
 
v16acc48 mul16 (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply intrinsic function using small X input buffer.
 
v8acc48 mul8 (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply intrinsic function .
 
v8acc48 mul8 (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply intrinsic function using small X input buffer.
 
v8acc48 mul8 (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply intrinsic function .
 
v8acc48 mul8 (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply intrinsic function using small X input buffer.
 
v16acc48 negmul16 (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function .
 
v16acc48 negmul16 (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function using small X input buffer.
 
v16acc48 negmul16 (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function .
 
v16acc48 negmul16 (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function using small X input buffer.
 
v8acc48 negmul8 (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function .
 
v8acc48 negmul8 (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function using small X input buffer.
 
v8acc48 negmul8 (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function .
 
v8acc48 negmul8 (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32uint8 zbuff, int zstart, unsigned int zoffsets, int zstep, unsigned int zsquare)
 Multiply-negate intrinsic function using small X input buffer.
 

Function Documentation

v16acc48 mac16 ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function .

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mac16 ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function using small X input buffer.

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mac16 ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function .

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mac16 ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function using small X input buffer.

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mac8 ( v8acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function .

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mac8 ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function using small X input buffer.

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mac8 ( v8acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function .

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mac8 ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-accumulate intrinsic function using small X input buffer.

acc0 += z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc16 ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function .

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc16 ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function using small X input buffer.

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc16 ( v16acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function .

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 msc16 ( v16acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function using small X input buffer.

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 msc8 ( v8acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function .

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 msc8 ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function using small X input buffer.

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 msc8 ( v8acc48  acc,
v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function .

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 msc8 ( v8acc48  acc,
v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-subtract intrinsic function using small X input buffer.

acc0 -= z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 x int48 lanes)
acc v8acc48 Incoming accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul16 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function .

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul16 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function using small X input buffer.

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul16 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function .

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 mul16 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function using small X input buffer.

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mul8 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function .

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mul8 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function using small X input buffer.

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mul8 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function .

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 mul8 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply intrinsic function using small X input buffer.

acc0 = z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul16 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function .

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 )

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul16 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function using small X input buffer.

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 )

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul16 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function .

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 )

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v16acc48 negmul16 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
unsigned int  xoffsets_hi,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
unsigned int  zoffsets_hi,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function using small X input buffer.

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 )

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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b 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_hi unsigned int 4b 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
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
zoffsets_hiunsigned int 4b offset for each lane, applied to input from Z buffer, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 negmul8 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function .

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 )

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 negmul8 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32int8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function using small X input buffer.

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 )

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32int8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 negmul8 ( v64int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function .

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 )

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.
v8acc48 negmul8 ( v32int16  xbuff,
int  xstart,
unsigned int  xoffsets,
int  xstep,
unsigned int  xsquare,
v32uint8  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep,
unsigned int  zsquare 
)

Multiply-negate intrinsic function using small X input buffer.

acc0 = -( z00*x00 + z01*x01 + z02*x02 + z03*x03 + z04*x04 + z05*x05 + z06*x06 + z07*x07 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 )

Parameters

Input/OutputType Comments
return v8acc48 Returned accumulation vector (8 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. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xoffsets unsigned int 4b offset for each lane, while each second lane is an offset to the lane before + 1, applied to the x buffer. LSB apply to first lane
xstep unsigned int Step between each column for selection in the xbuffer. xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
xsquare unsigned int Select order of the mini-permute square (default=0x3210). LSB apply to first element
zbuff v32uint8Input buffer of 32 elements of type int8
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. zstart is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zoffsets unsigned int 4b offset for each lane while each second lane is an offset to the lane before + 1, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
zsquare unsigned int 4b offset for each lane, Select order of the mini-permute square (default=0x3210). LSB apply to first element
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 16bx8b scheme.
  • Parameter 'zstart' must be a compile time constant.