| AI Engine Intrinsics User Guide (v2026.1)

Loading...
Searching...
No Matches
Functions
8 bit Real x 8 bit Real
Intrinsics » Vector Operations » MAC intrinsics » Multiplication » Advanced » Integer » Vector MAC » 8 bit x 8 bit

## Overview

Vector MAC intrinsics with 8 bit real by 8 bit real

## Functions
v16acc48 | mac16 (v16acc48 acc, v128int8 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 .
v16acc48 | mac16 (v16acc48 acc, v128int8 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 .
v16acc48 | mac16 (v16acc48 acc, v128uint8 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 .
v16acc48 | mac16 (v16acc48 acc, v128uint8 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 .
v16acc48 | mac16 (v16acc48 acc, v64int8 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.
v16acc48 | mac16 (v16acc48 acc, v64int8 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 | mac16 (v16acc48 acc, v64uint8 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.
v16acc48 | mac16 (v16acc48 acc, v64uint8 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.
v8acc48 | mac8 (v8acc48 acc, v128int8 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, v128int8 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, v128uint8 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, v128uint8 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, v64int8 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, v64int8 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.
v8acc48 | mac8 (v8acc48 acc, v64uint8 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, v64uint8 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, v128int8 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 .
v16acc48 | msc16 (v16acc48 acc, v128int8 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 .
v16acc48 | msc16 (v16acc48 acc, v128uint8 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 .
v16acc48 | msc16 (v16acc48 acc, v128uint8 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 .
v16acc48 | msc16 (v16acc48 acc, v64int8 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.
v16acc48 | msc16 (v16acc48 acc, v64int8 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 | msc16 (v16acc48 acc, v64uint8 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.
v16acc48 | msc16 (v16acc48 acc, v64uint8 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.
v8acc48 | msc8 (v8acc48 acc, v128int8 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, v128int8 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, v128uint8 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, v128uint8 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, v64int8 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, v64int8 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.
v8acc48 | msc8 (v8acc48 acc, v64uint8 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, v64uint8 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 (v128int8 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 .
v16acc48 | mul16 (v128int8 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 .
v16acc48 | mul16 (v128uint8 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 .
v16acc48 | mul16 (v128uint8 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 .
v16acc48 | mul16 (v64int8 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.
v16acc48 | mul16 (v64int8 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 | mul16 (v64uint8 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.
v16acc48 | mul16 (v64uint8 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.
v8acc48 | mul8 (v128int8 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 (v128int8 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 (v128uint8 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 (v128uint8 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 (v64int8 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 (v64int8 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.
v8acc48 | mul8 (v64uint8 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 (v64uint8 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 (v128int8 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 .
v16acc48 | negmul16 (v128int8 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 .
v16acc48 | negmul16 (v128uint8 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 .
v16acc48 | negmul16 (v128uint8 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 .
v16acc48 | negmul16 (v64int8 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.
v16acc48 | negmul16 (v64int8 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.
v16acc48 | negmul16 (v64uint8 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.
v16acc48 | negmul16 (v64uint8 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.
v8acc48 | negmul8 (v128int8 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 (v128int8 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 (v128uint8 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 (v128uint8 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 (v64int8 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 (v64int8 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.
v8acc48 | negmul8 (v64uint8 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 (v64uint8 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

## ◆ mac16() [1/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v128int8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16() [2/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v128int8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16() [3/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v128uint8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16() [4/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v128uint8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16() [5/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v64int8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16() [6/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v64int8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16() [7/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v64uint8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16() [8/8]

v16acc48 mac16 | ( | v16acc48 | acc,
|  | v64uint8 | 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
acc8 += z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 += z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 += z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 += z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 += z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 += z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 += z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 += z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [1/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [2/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [3/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [4/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [5/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [6/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [7/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8() [8/8]

v8acc48 mac8 | ( | v8acc48 | acc,
|  | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 += z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 += z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 += z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 += z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 += z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 += z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 += z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [1/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v128int8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [2/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v128int8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [3/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v128uint8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [4/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v128uint8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [5/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v64int8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [6/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v64int8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [7/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v64uint8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16() [8/8]

v16acc48 msc16 | ( | v16acc48 | acc,
|  | v64uint8 | 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
acc8 -= z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 -= z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 -= z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 -= z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 -= z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 -= z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 -= z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 -= z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [1/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [2/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [3/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [4/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [5/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [6/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [7/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8() [8/8]

v8acc48 msc8 | ( | v8acc48 | acc,
|  | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 -= z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 -= z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 -= z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 -= z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 -= z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 -= z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 -= z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [1/8]

v16acc48 mul16 | ( | v128int8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [2/8]

v16acc48 mul16 | ( | v128int8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [3/8]

v16acc48 mul16 | ( | v128uint8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [4/8]

v16acc48 mul16 | ( | v128uint8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [5/8]

v16acc48 mul16 | ( | v64int8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [6/8]

v16acc48 mul16 | ( | v64int8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [7/8]

v16acc48 mul16 | ( | v64uint8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16() [8/8]

v16acc48 mul16 | ( | v64uint8 | 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
acc8 = z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87
acc9 = z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97
acc10 = z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107
acc11 = z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117
acc12 = z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127
acc13 = z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137
acc14 = z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147
acc15 = z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [1/8]

v8acc48 mul8 | ( | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [2/8]

v8acc48 mul8 | ( | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [3/8]

v8acc48 mul8 | ( | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [4/8]

v8acc48 mul8 | ( | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [5/8]

v8acc48 mul8 | ( | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [6/8]

v8acc48 mul8 | ( | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [7/8]

v8acc48 mul8 | ( | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8() [8/8]

v8acc48 mul8 | ( | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015
acc1 = z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115
acc2 = z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215
acc3 = z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315
acc4 = z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415
acc5 = z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515
acc6 = z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615
acc7 = z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [1/8]

v16acc48 negmul16 | ( | v128int8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [2/8]

v16acc48 negmul16 | ( | v128int8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [3/8]

v16acc48 negmul16 | ( | v128uint8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [4/8]

v16acc48 negmul16 | ( | v128uint8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [5/8]

v16acc48 negmul16 | ( | v64int8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [6/8]

v16acc48 negmul16 | ( | v64int8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [7/8]

v16acc48 negmul16 | ( | v64uint8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16() [8/8]

v16acc48 negmul16 | ( | v64uint8 | 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 )
acc8 = -( z80*x80 + z81*x81 + z82*x82 + z83*x83 + z84*x84 + z85*x85 + z86*x86 + z87*x87 )
acc9 = -( z90*x90 + z91*x91 + z92*x92 + z93*x93 + z94*x94 + z95*x95 + z96*x96 + z97*x97 )
acc10 = -( z100*x100 + z101*x101 + z102*x102 + z103*x103 + z104*x104 + z105*x105 + z106*x106 + z107*x107 )
acc11 = -( z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 + z116*x116 + z117*x117 )
acc12 = -( z120*x120 + z121*x121 + z122*x122 + z123*x123 + z124*x124 + z125*x125 + z126*x126 + z127*x127 )
acc13 = -( z130*x130 + z131*x131 + z132*x132 + z133*x133 + z134*x134 + z135*x135 + z136*x136 + z137*x137 )
acc14 = -( z140*x140 + z141*x141 + z142*x142 + z143*x143 + z144*x144 + z145*x145 + z146*x146 + z147*x147 )
acc15 = -( z150*x150 + z151*x151 + z152*x152 + z153*x153 + z154*x154 + z155*x155 + z156*x156 + z157*x157 )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 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
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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
  zstep | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [1/8]

v8acc48 negmul8 | ( | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [2/8]

v8acc48 negmul8 | ( | v128int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [3/8]

v8acc48 negmul8 | ( | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [4/8]

v8acc48 negmul8 | ( | v128uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 128 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [5/8]

v8acc48 negmul8 | ( | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [6/8]

v8acc48 negmul8 | ( | v64int8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [7/8]

v8acc48 negmul8 | ( | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8() [8/8]

v8acc48 negmul8 | ( | v64uint8 | 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 + z08*x08 + z09*x09 + z010*x010 + z011*x011 + z012*x012 + z013*x013 + z014*x014 + z015*x015 )
acc1 = -( z10*x10 + z11*x11 + z12*x12 + z13*x13 + z14*x14 + z15*x15 + z16*x16 + z17*x17 + z18*x18 + z19*x19 + z110*x110 + z111*x111 + z112*x112 + z113*x113 + z114*x114 + z115*x115 )
acc2 = -( z20*x20 + z21*x21 + z22*x22 + z23*x23 + z24*x24 + z25*x25 + z26*x26 + z27*x27 + z28*x28 + z29*x29 + z210*x210 + z211*x211 + z212*x212 + z213*x213 + z214*x214 + z215*x215 )
acc3 = -( z30*x30 + z31*x31 + z32*x32 + z33*x33 + z34*x34 + z35*x35 + z36*x36 + z37*x37 + z38*x38 + z39*x39 + z310*x310 + z311*x311 + z312*x312 + z313*x313 + z314*x314 + z315*x315 )
acc4 = -( z40*x40 + z41*x41 + z42*x42 + z43*x43 + z44*x44 + z45*x45 + z46*x46 + z47*x47 + z48*x48 + z49*x49 + z410*x410 + z411*x411 + z412*x412 + z413*x413 + z414*x414 + z415*x415 )
acc5 = -( z50*x50 + z51*x51 + z52*x52 + z53*x53 + z54*x54 + z55*x55 + z56*x56 + z57*x57 + z58*x58 + z59*x59 + z510*x510 + z511*x511 + z512*x512 + z513*x513 + z514*x514 + z515*x515 )
acc6 = -( z60*x60 + z61*x61 + z62*x62 + z63*x63 + z64*x64 + z65*x65 + z66*x66 + z67*x67 + z68*x68 + z69*x69 + z610*x610 + z611*x611 + z612*x612 + z613*x613 + z614*x614 + z615*x615 )
acc7 = -( z70*x70 + z71*x71 + z72*x72 + z73*x73 + z74*x74 + z75*x75 + z76*x76 + z77*x77 + z78*x78 + z79*x79 + z710*x710 + z711*x711 + z712*x712 + z713*x713 + z714*x714 + z715*x715 )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int8
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to the x buffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer. xstep is restricted to multiples of 4 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 32 elements of type int8
  zstart | 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 | 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 | Step between each column for selection in the zbuffer. zstep is restricted to multiples of 2 as granularity for zbuff is 16-bit.
  zsquare | 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 8bx8b scheme and the coefficient buffer uses the 8bx8b scheme.
  - Parameter 'zstart' must be a compile time constant.