| AI Engine Intrinsics User Guide (v2026.1)

Loading...
Searching...
No Matches
Functions
16 bit Real x 16 bit Real
Intrinsics » Vector Operations » MAC intrinsics » Multiplication » Advanced » Integer » Vector MAC combined with vector comparisons » 16 bit x 16 bit

## Overview

Vector MAC combined with vector comparisons with 16 bit real by 16 bit real

## Functions
v16acc48 | mac16_abs (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v16acc48 | mac16_abs (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v16acc48 | mac16_max (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mac16_max (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mac16_max (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer .
v16acc48 | mac16_maxdiff (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mac16_maxdiff (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mac16_maxdiff (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v16acc48 | mac16_min (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mac16_min (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mac16_min (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer .
v8acc48 | mac8_abs (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v8acc48 | mac8_abs (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v8acc48 | mac8_max (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mac8_max (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mac8_max (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer .
v8acc48 | mac8_maxdiff (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mac8_maxdiff (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mac8_maxdiff (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v8acc48 | mac8_min (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mac8_min (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mac8_min (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer .
v16acc48 | msc16_abs (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v16acc48 | msc16_abs (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v16acc48 | msc16_max (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | msc16_max (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | msc16_max (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer .
v16acc48 | msc16_maxdiff (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | msc16_maxdiff (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | msc16_maxdiff (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v16acc48 | msc16_min (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | msc16_min (v16acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | msc16_min (v16acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer .
v8acc48 | msc8_abs (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v8acc48 | msc8_abs (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v8acc48 | msc8_max (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | msc8_max (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | msc8_max (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer .
v8acc48 | msc8_maxdiff (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | msc8_maxdiff (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | msc8_maxdiff (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v8acc48 | msc8_min (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | msc8_min (v8acc48 acc, v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | msc8_min (v8acc48 acc, v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer .
v16acc48 | mul16_abs (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v16acc48 | mul16_abs (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v16acc48 | mul16_max (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mul16_max (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mul16_max (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer .
v16acc48 | mul16_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mul16_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mul16_maxdiff (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v16acc48 | mul16_min (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mul16_min (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | mul16_min (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer .
v8acc48 | mul8_abs (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v8acc48 | mul8_abs (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v8acc48 | mul8_max (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mul8_max (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mul8_max (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer .
v8acc48 | mul8_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mul8_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mul8_maxdiff (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v8acc48 | mul8_min (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mul8_min (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | mul8_min (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer .
v16acc48 | negmul16_abs (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v16acc48 | negmul16_abs (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v16acc48 | negmul16_max (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | negmul16_max (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | negmul16_max (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer .
v16acc48 | negmul16_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | negmul16_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v16acc48 | negmul16_maxdiff (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v16acc48 | negmul16_min (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | negmul16_min (v32int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v16acc48 | negmul16_min (v64int16 xbuff, int xstart, unsigned int xoffsets, unsigned int xoffsets_hi, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, unsigned int zoffsets_hi, int zstep)
| Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer .
v8acc48 | negmul8_abs (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.
v8acc48 | negmul8_abs (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer .
v8acc48 | negmul8_max (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | negmul8_max (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | negmul8_max (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer .
v8acc48 | negmul8_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | negmul8_maxdiff (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.
v8acc48 | negmul8_maxdiff (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .
v8acc48 | negmul8_min (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | negmul8_min (v32int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, v32int16 ybuff, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.
v8acc48 | negmul8_min (v64int16 xbuff, int xstart, unsigned int xoffsets, int xstep, unsigned int xsquare, int ystart, unsigned int ysquare, v16int16 zbuff, int zstart, unsigned int zoffsets, int zstep)
| Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer .

## Function Documentation

## ◆ mac16_abs() [1/2]

v16acc48 mac16_abs | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 += z00*abs(x00) + z01*abs(x01)
acc1 += z10*abs(x10) + z11*abs(x11)
acc2 += z20*abs(x20) + z21*abs(x21)
acc3 += z30*abs(x30) + z31*abs(x31)
acc4 += z40*abs(x40) + z41*abs(x41)
acc5 += z50*abs(x50) + z51*abs(x51)
acc6 += z60*abs(x60) + z61*abs(x61)
acc7 += z70*abs(x70) + z71*abs(x71)
acc8 += z80*abs(x80) + z81*abs(x81)
acc9 += z90*abs(x90) + z91*abs(x91)
acc10 += z100*abs(x100) + z101*abs(x101)
acc11 += z110*abs(x110) + z111*abs(x111)
acc12 += z120*abs(x120) + z121*abs(x121)
acc13 += z130*abs(x130) + z131*abs(x131)
acc14 += z140*abs(x140) + z141*abs(x141)
acc15 += z150*abs(x150) + z151*abs(x151)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_abs() [2/2]

v16acc48 mac16_abs | ( | v16acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 += z00*abs(x00) + z01*abs(x01)
acc1 += z10*abs(x10) + z11*abs(x11)
acc2 += z20*abs(x20) + z21*abs(x21)
acc3 += z30*abs(x30) + z31*abs(x31)
acc4 += z40*abs(x40) + z41*abs(x41)
acc5 += z50*abs(x50) + z51*abs(x51)
acc6 += z60*abs(x60) + z61*abs(x61)
acc7 += z70*abs(x70) + z71*abs(x71)
acc8 += z80*abs(x80) + z81*abs(x81)
acc9 += z90*abs(x90) + z91*abs(x91)
acc10 += z100*abs(x100) + z101*abs(x101)
acc11 += z110*abs(x110) + z111*abs(x111)
acc12 += z120*abs(x120) + z121*abs(x121)
acc13 += z130*abs(x130) + z131*abs(x131)
acc14 += z140*abs(x140) + z141*abs(x141)
acc15 += z150*abs(x150) + z151*abs(x151)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_max() [1/3]

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

Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 += z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 += z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 += z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 += z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 += z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 += z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 += z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 += z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 += z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 += z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 += z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 += z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 += z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 += z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 += z150*(max(x150 , y150)) + z151*(max(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_max() [2/3]

v16acc48 mac16_max | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 += z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 += z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 += z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 += z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 += z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 += z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 += z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 += z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 += z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 += z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 += z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 += z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 += z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 += z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 += z150*(max(x150 , y150)) + z151*(max(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_max() [3/3]

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

Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 += z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 += z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 += z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 += z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 += z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 += z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 += z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 += z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 += z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 += z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 += z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 += z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 += z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 += z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 += z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 += z150*(max(x150 , y150)) + z151*(max(x151 , y151))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_maxdiff() [1/3]

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

Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 += z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 += z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 += z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 += z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 += z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 += z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 += z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 += z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 += z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 += z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 += z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 += z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 += z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 += z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 += z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_maxdiff() [2/3]

v16acc48 mac16_maxdiff | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 += z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 += z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 += z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 += z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 += z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 += z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 += z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 += z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 += z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 += z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 += z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 += z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 += z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 += z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 += z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_maxdiff() [3/3]

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

Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 += z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 += z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 += z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 += z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 += z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 += z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 += z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 += z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 += z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 += z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 += z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 += z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 += z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 += z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 += z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 += z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_min() [1/3]

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

Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 += z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 += z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 += z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 += z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 += z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 += z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 += z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 += z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 += z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 += z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 += z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 += z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 += z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 += z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 += z150*(min(x150 , y150)) + z151*(min(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_min() [2/3]

v16acc48 mac16_min | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 += z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 += z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 += z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 += z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 += z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 += z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 += z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 += z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 += z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 += z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 += z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 += z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 += z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 += z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 += z150*(min(x150 , y150)) + z151*(min(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac16_min() [3/3]

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

Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 += z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 += z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 += z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 += z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 += z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 += z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 += z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 += z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 += z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 += z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 += z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 += z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 += z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 += z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 += z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 += z150*(min(x150 , y150)) + z151*(min(x151 , y151))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_abs() [1/2]

v8acc48 mac8_abs | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 += z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03)
acc1 += z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13)
acc2 += z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23)
acc3 += z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33)
acc4 += z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43)
acc5 += z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53)
acc6 += z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63)
acc7 += z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_abs() [2/2]

v8acc48 mac8_abs | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 += z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03)
acc1 += z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13)
acc2 += z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23)
acc3 += z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33)
acc4 += z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43)
acc5 += z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53)
acc6 += z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63)
acc7 += z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_max() [1/3]

v8acc48 mac8_max | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 += z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 += z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 += z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 += z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 += z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 += z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 += z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_max() [2/3]

v8acc48 mac8_max | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 += z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 += z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 += z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 += z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 += z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 += z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 += z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_max() [3/3]

v8acc48 mac8_max | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 += z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 += z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 += z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 += z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 += z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 += z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 += z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 += z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_maxdiff() [1/3]

v8acc48 mac8_maxdiff | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 += z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 += z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 += z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 += z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 += z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 += z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 += z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_maxdiff() [2/3]

v8acc48 mac8_maxdiff | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 += z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 += z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 += z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 += z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 += z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 += z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 += z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_maxdiff() [3/3]

v8acc48 mac8_maxdiff | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 += z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 += z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 += z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 += z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 += z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 += z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 += z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 += z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_min() [1/3]

v8acc48 mac8_min | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 += z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 += z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 += z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 += z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 += z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 += z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 += z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_min() [2/3]

v8acc48 mac8_min | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 += z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 += z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 += z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 += z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 += z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 += z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 += z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 += z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mac8_min() [3/3]

v8acc48 mac8_min | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-accumulate intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 += z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 += z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 += z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 += z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 += z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 += z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 += z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 += z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_abs() [1/2]

v16acc48 msc16_abs | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*abs(x00) + z01*abs(x01)
acc1 -= z10*abs(x10) + z11*abs(x11)
acc2 -= z20*abs(x20) + z21*abs(x21)
acc3 -= z30*abs(x30) + z31*abs(x31)
acc4 -= z40*abs(x40) + z41*abs(x41)
acc5 -= z50*abs(x50) + z51*abs(x51)
acc6 -= z60*abs(x60) + z61*abs(x61)
acc7 -= z70*abs(x70) + z71*abs(x71)
acc8 -= z80*abs(x80) + z81*abs(x81)
acc9 -= z90*abs(x90) + z91*abs(x91)
acc10 -= z100*abs(x100) + z101*abs(x101)
acc11 -= z110*abs(x110) + z111*abs(x111)
acc12 -= z120*abs(x120) + z121*abs(x121)
acc13 -= z130*abs(x130) + z131*abs(x131)
acc14 -= z140*abs(x140) + z141*abs(x141)
acc15 -= z150*abs(x150) + z151*abs(x151)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_abs() [2/2]

v16acc48 msc16_abs | ( | v16acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 -= z00*abs(x00) + z01*abs(x01)
acc1 -= z10*abs(x10) + z11*abs(x11)
acc2 -= z20*abs(x20) + z21*abs(x21)
acc3 -= z30*abs(x30) + z31*abs(x31)
acc4 -= z40*abs(x40) + z41*abs(x41)
acc5 -= z50*abs(x50) + z51*abs(x51)
acc6 -= z60*abs(x60) + z61*abs(x61)
acc7 -= z70*abs(x70) + z71*abs(x71)
acc8 -= z80*abs(x80) + z81*abs(x81)
acc9 -= z90*abs(x90) + z91*abs(x91)
acc10 -= z100*abs(x100) + z101*abs(x101)
acc11 -= z110*abs(x110) + z111*abs(x111)
acc12 -= z120*abs(x120) + z121*abs(x121)
acc13 -= z130*abs(x130) + z131*abs(x131)
acc14 -= z140*abs(x140) + z141*abs(x141)
acc15 -= z150*abs(x150) + z151*abs(x151)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_max() [1/3]

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

Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 -= z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 -= z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 -= z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 -= z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 -= z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 -= z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 -= z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 -= z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 -= z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 -= z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 -= z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 -= z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 -= z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 -= z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 -= z150*(max(x150 , y150)) + z151*(max(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_max() [2/3]

v16acc48 msc16_max | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 -= z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 -= z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 -= z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 -= z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 -= z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 -= z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 -= z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 -= z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 -= z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 -= z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 -= z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 -= z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 -= z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 -= z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 -= z150*(max(x150 , y150)) + z151*(max(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_max() [3/3]

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

Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 -= z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 -= z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 -= z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 -= z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 -= z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 -= z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 -= z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 -= z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 -= z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 -= z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 -= z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 -= z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 -= z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 -= z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 -= z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 -= z150*(max(x150 , y150)) + z151*(max(x151 , y151))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_maxdiff() [1/3]

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

Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 -= z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 -= z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 -= z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 -= z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 -= z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 -= z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 -= z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 -= z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 -= z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 -= z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 -= z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 -= z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 -= z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 -= z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 -= z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_maxdiff() [2/3]

v16acc48 msc16_maxdiff | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 -= z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 -= z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 -= z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 -= z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 -= z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 -= z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 -= z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 -= z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 -= z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 -= z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 -= z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 -= z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 -= z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 -= z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 -= z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_maxdiff() [3/3]

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

Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 -= z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 -= z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 -= z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 -= z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 -= z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 -= z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 -= z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 -= z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 -= z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 -= z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 -= z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 -= z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 -= z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 -= z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 -= z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 -= z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_min() [1/3]

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

Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 -= z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 -= z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 -= z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 -= z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 -= z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 -= z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 -= z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 -= z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 -= z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 -= z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 -= z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 -= z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 -= z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 -= z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 -= z150*(min(x150 , y150)) + z151*(min(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_min() [2/3]

v16acc48 msc16_min | ( | v16acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 -= z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 -= z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 -= z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 -= z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 -= z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 -= z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 -= z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 -= z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 -= z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 -= z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 -= z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 -= z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 -= z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 -= z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 -= z150*(min(x150 , y150)) + z151*(min(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (16 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc16_min() [3/3]

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

Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 -= z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 -= z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 -= z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 -= z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 -= z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 -= z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 -= z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 -= z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 -= z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 -= z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 -= z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 -= z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 -= z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 -= z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 -= z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 -= z150*(min(x150 , y150)) + z151*(min(x151 , y151))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_abs() [1/2]

v8acc48 msc8_abs | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03)
acc1 -= z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13)
acc2 -= z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23)
acc3 -= z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33)
acc4 -= z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43)
acc5 -= z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53)
acc6 -= z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63)
acc7 -= z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_abs() [2/2]

v8acc48 msc8_abs | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 -= z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03)
acc1 -= z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13)
acc2 -= z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23)
acc3 -= z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33)
acc4 -= z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43)
acc5 -= z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53)
acc6 -= z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63)
acc7 -= z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_max() [1/3]

v8acc48 msc8_max | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 -= z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 -= z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 -= z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 -= z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 -= z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 -= z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 -= z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_max() [2/3]

v8acc48 msc8_max | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 -= z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 -= z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 -= z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 -= z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 -= z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 -= z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 -= z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_max() [3/3]

v8acc48 msc8_max | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 -= z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 -= z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 -= z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 -= z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 -= z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 -= z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 -= z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 -= z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_maxdiff() [1/3]

v8acc48 msc8_maxdiff | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 -= z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 -= z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 -= z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 -= z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 -= z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 -= z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 -= z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_maxdiff() [2/3]

v8acc48 msc8_maxdiff | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 -= z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 -= z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 -= z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 -= z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 -= z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 -= z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 -= z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_maxdiff() [3/3]

v8acc48 msc8_maxdiff | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 -= z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 -= z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 -= z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 -= z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 -= z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 -= z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 -= z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 -= z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_min() [1/3]

v8acc48 msc8_min | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 -= z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 -= z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 -= z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 -= z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 -= z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 -= z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 -= z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_min() [2/3]

v8acc48 msc8_min | ( | v8acc48 | acc,
|  | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 -= z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 -= z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 -= z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 -= z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 -= z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 -= z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 -= z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 -= z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x int48 lanes)
  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ msc8_min() [3/3]

v8acc48 msc8_min | ( | v8acc48 | acc,
|  | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-subtract intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 -= z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 -= z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 -= z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 -= z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 -= z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 -= z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 -= z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 -= z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

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 int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_abs() [1/2]

v16acc48 mul16_abs | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 = z00*abs(x00) + z01*abs(x01)
acc1 = z10*abs(x10) + z11*abs(x11)
acc2 = z20*abs(x20) + z21*abs(x21)
acc3 = z30*abs(x30) + z31*abs(x31)
acc4 = z40*abs(x40) + z41*abs(x41)
acc5 = z50*abs(x50) + z51*abs(x51)
acc6 = z60*abs(x60) + z61*abs(x61)
acc7 = z70*abs(x70) + z71*abs(x71)
acc8 = z80*abs(x80) + z81*abs(x81)
acc9 = z90*abs(x90) + z91*abs(x91)
acc10 = z100*abs(x100) + z101*abs(x101)
acc11 = z110*abs(x110) + z111*abs(x111)
acc12 = z120*abs(x120) + z121*abs(x121)
acc13 = z130*abs(x130) + z131*abs(x131)
acc14 = z140*abs(x140) + z141*abs(x141)
acc15 = z150*abs(x150) + z151*abs(x151)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_abs() [2/2]

v16acc48 mul16_abs | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 = z00*abs(x00) + z01*abs(x01)
acc1 = z10*abs(x10) + z11*abs(x11)
acc2 = z20*abs(x20) + z21*abs(x21)
acc3 = z30*abs(x30) + z31*abs(x31)
acc4 = z40*abs(x40) + z41*abs(x41)
acc5 = z50*abs(x50) + z51*abs(x51)
acc6 = z60*abs(x60) + z61*abs(x61)
acc7 = z70*abs(x70) + z71*abs(x71)
acc8 = z80*abs(x80) + z81*abs(x81)
acc9 = z90*abs(x90) + z91*abs(x91)
acc10 = z100*abs(x100) + z101*abs(x101)
acc11 = z110*abs(x110) + z111*abs(x111)
acc12 = z120*abs(x120) + z121*abs(x121)
acc13 = z130*abs(x130) + z131*abs(x131)
acc14 = z140*abs(x140) + z141*abs(x141)
acc15 = z150*abs(x150) + z151*abs(x151)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_max() [1/3]

v16acc48 mul16_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 = z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 = z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 = z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 = z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 = z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 = z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 = z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 = z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 = z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 = z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 = z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 = z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 = z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 = z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 = z150*(max(x150 , y150)) + z151*(max(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_max() [2/3]

v16acc48 mul16_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 = z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 = z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 = z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 = z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 = z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 = z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 = z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 = z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 = z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 = z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 = z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 = z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 = z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 = z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 = z150*(max(x150 , y150)) + z151*(max(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_max() [3/3]

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

Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 = z00*(max(x00 , y00)) + z01*(max(x01 , y01))
acc1 = z10*(max(x10 , y10)) + z11*(max(x11 , y11))
acc2 = z20*(max(x20 , y20)) + z21*(max(x21 , y21))
acc3 = z30*(max(x30 , y30)) + z31*(max(x31 , y31))
acc4 = z40*(max(x40 , y40)) + z41*(max(x41 , y41))
acc5 = z50*(max(x50 , y50)) + z51*(max(x51 , y51))
acc6 = z60*(max(x60 , y60)) + z61*(max(x61 , y61))
acc7 = z70*(max(x70 , y70)) + z71*(max(x71 , y71))
acc8 = z80*(max(x80 , y80)) + z81*(max(x81 , y81))
acc9 = z90*(max(x90 , y90)) + z91*(max(x91 , y91))
acc10 = z100*(max(x100 , y100)) + z101*(max(x101 , y101))
acc11 = z110*(max(x110 , y110)) + z111*(max(x111 , y111))
acc12 = z120*(max(x120 , y120)) + z121*(max(x121 , y121))
acc13 = z130*(max(x130 , y130)) + z131*(max(x131 , y131))
acc14 = z140*(max(x140 , y140)) + z141*(max(x141 , y141))
acc15 = z150*(max(x150 , y150)) + z151*(max(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_maxdiff() [1/3]

v16acc48 mul16_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 = z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 = z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 = z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 = z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 = z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 = z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 = z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 = z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 = z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 = z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 = z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 = z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 = z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 = z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 = z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_maxdiff() [2/3]

v16acc48 mul16_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 = z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 = z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 = z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 = z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 = z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 = z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 = z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 = z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 = z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 = z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 = z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 = z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 = z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 = z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 = z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_maxdiff() [3/3]

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

Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 = z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0)
acc1 = z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0)
acc2 = z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0)
acc3 = z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0)
acc4 = z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0)
acc5 = z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0)
acc6 = z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0)
acc7 = z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0)
acc8 = z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0)
acc9 = z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0)
acc10 = z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0)
acc11 = z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0)
acc12 = z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0)
acc13 = z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0)
acc14 = z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0)
acc15 = z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0)

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_min() [1/3]

v16acc48 mul16_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 = z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 = z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 = z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 = z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 = z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 = z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 = z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 = z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 = z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 = z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 = z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 = z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 = z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 = z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 = z150*(min(x150 , y150)) + z151*(min(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_min() [2/3]

v16acc48 mul16_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 = z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 = z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 = z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 = z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 = z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 = z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 = z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 = z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 = z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 = z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 = z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 = z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 = z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 = z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 = z150*(min(x150 , y150)) + z151*(min(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul16_min() [3/3]

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

Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 = z00*(min(x00 , y00)) + z01*(min(x01 , y01))
acc1 = z10*(min(x10 , y10)) + z11*(min(x11 , y11))
acc2 = z20*(min(x20 , y20)) + z21*(min(x21 , y21))
acc3 = z30*(min(x30 , y30)) + z31*(min(x31 , y31))
acc4 = z40*(min(x40 , y40)) + z41*(min(x41 , y41))
acc5 = z50*(min(x50 , y50)) + z51*(min(x51 , y51))
acc6 = z60*(min(x60 , y60)) + z61*(min(x61 , y61))
acc7 = z70*(min(x70 , y70)) + z71*(min(x71 , y71))
acc8 = z80*(min(x80 , y80)) + z81*(min(x81 , y81))
acc9 = z90*(min(x90 , y90)) + z91*(min(x91 , y91))
acc10 = z100*(min(x100 , y100)) + z101*(min(x101 , y101))
acc11 = z110*(min(x110 , y110)) + z111*(min(x111 , y111))
acc12 = z120*(min(x120 , y120)) + z121*(min(x121 , y121))
acc13 = z130*(min(x130 , y130)) + z131*(min(x131 , y131))
acc14 = z140*(min(x140 , y140)) + z141*(min(x141 , y141))
acc15 = z150*(min(x150 , y150)) + z151*(min(x151 , y151))

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_abs() [1/2]

v8acc48 mul8_abs | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 = z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03)
acc1 = z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13)
acc2 = z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23)
acc3 = z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33)
acc4 = z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43)
acc5 = z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53)
acc6 = z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63)
acc7 = z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_abs() [2/2]

v8acc48 mul8_abs | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 = z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03)
acc1 = z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13)
acc2 = z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23)
acc3 = z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33)
acc4 = z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43)
acc5 = z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53)
acc6 = z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63)
acc7 = z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_max() [1/3]

v8acc48 mul8_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 = z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 = z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 = z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 = z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 = z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 = z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 = z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_max() [2/3]

v8acc48 mul8_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 = z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 = z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 = z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 = z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 = z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 = z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 = z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_max() [3/3]

v8acc48 mul8_max | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 = z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03))
acc1 = z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13))
acc2 = z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23))
acc3 = z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33))
acc4 = z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43))
acc5 = z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53))
acc6 = z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63))
acc7 = z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_maxdiff() [1/3]

v8acc48 mul8_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 = z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 = z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 = z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 = z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 = z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 = z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 = z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_maxdiff() [2/3]

v8acc48 mul8_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 = z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 = z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 = z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 = z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 = z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 = z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 = z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_maxdiff() [3/3]

v8acc48 mul8_maxdiff | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 = z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0)
acc1 = z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0)
acc2 = z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0)
acc3 = z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0)
acc4 = z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0)
acc5 = z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0)
acc6 = z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0)
acc7 = z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0)

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_min() [1/3]

v8acc48 mul8_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 = z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 = z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 = z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 = z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 = z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 = z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 = z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_min() [2/3]

v8acc48 mul8_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 = z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 = z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 = z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 = z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 = z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 = z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 = z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ mul8_min() [3/3]

v8acc48 mul8_min | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 = z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03))
acc1 = z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13))
acc2 = z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23))
acc3 = z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33))
acc4 = z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43))
acc5 = z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53))
acc6 = z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63))
acc7 = z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73))

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_abs() [1/2]

v16acc48 negmul16_abs | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*abs(x00) + z01*abs(x01) )
acc1 = -( z10*abs(x10) + z11*abs(x11) )
acc2 = -( z20*abs(x20) + z21*abs(x21) )
acc3 = -( z30*abs(x30) + z31*abs(x31) )
acc4 = -( z40*abs(x40) + z41*abs(x41) )
acc5 = -( z50*abs(x50) + z51*abs(x51) )
acc6 = -( z60*abs(x60) + z61*abs(x61) )
acc7 = -( z70*abs(x70) + z71*abs(x71) )
acc8 = -( z80*abs(x80) + z81*abs(x81) )
acc9 = -( z90*abs(x90) + z91*abs(x91) )
acc10 = -( z100*abs(x100) + z101*abs(x101) )
acc11 = -( z110*abs(x110) + z111*abs(x111) )
acc12 = -( z120*abs(x120) + z121*abs(x121) )
acc13 = -( z130*abs(x130) + z131*abs(x131) )
acc14 = -( z140*abs(x140) + z141*abs(x141) )
acc15 = -( z150*abs(x150) + z151*abs(x151) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_abs() [2/2]

v16acc48 negmul16_abs | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 = -( z00*abs(x00) + z01*abs(x01) )
acc1 = -( z10*abs(x10) + z11*abs(x11) )
acc2 = -( z20*abs(x20) + z21*abs(x21) )
acc3 = -( z30*abs(x30) + z31*abs(x31) )
acc4 = -( z40*abs(x40) + z41*abs(x41) )
acc5 = -( z50*abs(x50) + z51*abs(x51) )
acc6 = -( z60*abs(x60) + z61*abs(x61) )
acc7 = -( z70*abs(x70) + z71*abs(x71) )
acc8 = -( z80*abs(x80) + z81*abs(x81) )
acc9 = -( z90*abs(x90) + z91*abs(x91) )
acc10 = -( z100*abs(x100) + z101*abs(x101) )
acc11 = -( z110*abs(x110) + z111*abs(x111) )
acc12 = -( z120*abs(x120) + z121*abs(x121) )
acc13 = -( z130*abs(x130) + z131*abs(x131) )
acc14 = -( z140*abs(x140) + z141*abs(x141) )
acc15 = -( z150*abs(x150) + z151*abs(x151) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_max() [1/3]

v16acc48 negmul16_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(max(x00 , y00)) + z01*(max(x01 , y01)) )
acc1 = -( z10*(max(x10 , y10)) + z11*(max(x11 , y11)) )
acc2 = -( z20*(max(x20 , y20)) + z21*(max(x21 , y21)) )
acc3 = -( z30*(max(x30 , y30)) + z31*(max(x31 , y31)) )
acc4 = -( z40*(max(x40 , y40)) + z41*(max(x41 , y41)) )
acc5 = -( z50*(max(x50 , y50)) + z51*(max(x51 , y51)) )
acc6 = -( z60*(max(x60 , y60)) + z61*(max(x61 , y61)) )
acc7 = -( z70*(max(x70 , y70)) + z71*(max(x71 , y71)) )
acc8 = -( z80*(max(x80 , y80)) + z81*(max(x81 , y81)) )
acc9 = -( z90*(max(x90 , y90)) + z91*(max(x91 , y91)) )
acc10 = -( z100*(max(x100 , y100)) + z101*(max(x101 , y101)) )
acc11 = -( z110*(max(x110 , y110)) + z111*(max(x111 , y111)) )
acc12 = -( z120*(max(x120 , y120)) + z121*(max(x121 , y121)) )
acc13 = -( z130*(max(x130 , y130)) + z131*(max(x131 , y131)) )
acc14 = -( z140*(max(x140 , y140)) + z141*(max(x141 , y141)) )
acc15 = -( z150*(max(x150 , y150)) + z151*(max(x151 , y151)) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_max() [2/3]

v16acc48 negmul16_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(max(x00 , y00)) + z01*(max(x01 , y01)) )
acc1 = -( z10*(max(x10 , y10)) + z11*(max(x11 , y11)) )
acc2 = -( z20*(max(x20 , y20)) + z21*(max(x21 , y21)) )
acc3 = -( z30*(max(x30 , y30)) + z31*(max(x31 , y31)) )
acc4 = -( z40*(max(x40 , y40)) + z41*(max(x41 , y41)) )
acc5 = -( z50*(max(x50 , y50)) + z51*(max(x51 , y51)) )
acc6 = -( z60*(max(x60 , y60)) + z61*(max(x61 , y61)) )
acc7 = -( z70*(max(x70 , y70)) + z71*(max(x71 , y71)) )
acc8 = -( z80*(max(x80 , y80)) + z81*(max(x81 , y81)) )
acc9 = -( z90*(max(x90 , y90)) + z91*(max(x91 , y91)) )
acc10 = -( z100*(max(x100 , y100)) + z101*(max(x101 , y101)) )
acc11 = -( z110*(max(x110 , y110)) + z111*(max(x111 , y111)) )
acc12 = -( z120*(max(x120 , y120)) + z121*(max(x121 , y121)) )
acc13 = -( z130*(max(x130 , y130)) + z131*(max(x131 , y131)) )
acc14 = -( z140*(max(x140 , y140)) + z141*(max(x141 , y141)) )
acc15 = -( z150*(max(x150 , y150)) + z151*(max(x151 , y151)) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_max() [3/3]

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

Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 = -( z00*(max(x00 , y00)) + z01*(max(x01 , y01)) )
acc1 = -( z10*(max(x10 , y10)) + z11*(max(x11 , y11)) )
acc2 = -( z20*(max(x20 , y20)) + z21*(max(x21 , y21)) )
acc3 = -( z30*(max(x30 , y30)) + z31*(max(x31 , y31)) )
acc4 = -( z40*(max(x40 , y40)) + z41*(max(x41 , y41)) )
acc5 = -( z50*(max(x50 , y50)) + z51*(max(x51 , y51)) )
acc6 = -( z60*(max(x60 , y60)) + z61*(max(x61 , y61)) )
acc7 = -( z70*(max(x70 , y70)) + z71*(max(x71 , y71)) )
acc8 = -( z80*(max(x80 , y80)) + z81*(max(x81 , y81)) )
acc9 = -( z90*(max(x90 , y90)) + z91*(max(x91 , y91)) )
acc10 = -( z100*(max(x100 , y100)) + z101*(max(x101 , y101)) )
acc11 = -( z110*(max(x110 , y110)) + z111*(max(x111 , y111)) )
acc12 = -( z120*(max(x120 , y120)) + z121*(max(x121 , y121)) )
acc13 = -( z130*(max(x130 , y130)) + z131*(max(x131 , y131)) )
acc14 = -( z140*(max(x140 , y140)) + z141*(max(x141 , y141)) )
acc15 = -( z150*(max(x150 , y150)) + z151*(max(x151 , y151)) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_maxdiff() [1/3]

v16acc48 negmul16_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) )
acc1 = -( z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) )
acc2 = -( z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) )
acc3 = -( z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) )
acc4 = -( z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) )
acc5 = -( z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) )
acc6 = -( z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) )
acc7 = -( z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) )
acc8 = -( z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0) )
acc9 = -( z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0) )
acc10 = -( z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0) )
acc11 = -( z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0) )
acc12 = -( z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0) )
acc13 = -( z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0) )
acc14 = -( z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0) )
acc15 = -( z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_maxdiff() [2/3]

v16acc48 negmul16_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) )
acc1 = -( z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) )
acc2 = -( z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) )
acc3 = -( z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) )
acc4 = -( z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) )
acc5 = -( z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) )
acc6 = -( z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) )
acc7 = -( z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) )
acc8 = -( z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0) )
acc9 = -( z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0) )
acc10 = -( z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0) )
acc11 = -( z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0) )
acc12 = -( z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0) )
acc13 = -( z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0) )
acc14 = -( z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0) )
acc15 = -( z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_maxdiff() [3/3]

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

Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 = -( z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) )
acc1 = -( z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) )
acc2 = -( z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) )
acc3 = -( z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) )
acc4 = -( z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) )
acc5 = -( z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) )
acc6 = -( z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) )
acc7 = -( z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) )
acc8 = -( z80*((x80 - y80 > 0) ? (x80 - y80):0) + z81*((x81 - y81 > 0) ? (x81 - y81):0) )
acc9 = -( z90*((x90 - y90 > 0) ? (x90 - y90):0) + z91*((x91 - y91 > 0) ? (x91 - y91):0) )
acc10 = -( z100*((x100 - y100 > 0) ? (x100 - y100):0) + z101*((x101 - y101 > 0) ? (x101 - y101):0) )
acc11 = -( z110*((x110 - y110 > 0) ? (x110 - y110):0) + z111*((x111 - y111 > 0) ? (x111 - y111):0) )
acc12 = -( z120*((x120 - y120 > 0) ? (x120 - y120):0) + z121*((x121 - y121 > 0) ? (x121 - y121):0) )
acc13 = -( z130*((x130 - y130 > 0) ? (x130 - y130):0) + z131*((x131 - y131 > 0) ? (x131 - y131):0) )
acc14 = -( z140*((x140 - y140 > 0) ? (x140 - y140):0) + z141*((x141 - y141 > 0) ? (x141 - y141):0) )
acc15 = -( z150*((x150 - y150 > 0) ? (x150 - y150):0) + z151*((x151 - y151 > 0) ? (x151 - y151):0) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_min() [1/3]

v16acc48 negmul16_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(min(x00 , y00)) + z01*(min(x01 , y01)) )
acc1 = -( z10*(min(x10 , y10)) + z11*(min(x11 , y11)) )
acc2 = -( z20*(min(x20 , y20)) + z21*(min(x21 , y21)) )
acc3 = -( z30*(min(x30 , y30)) + z31*(min(x31 , y31)) )
acc4 = -( z40*(min(x40 , y40)) + z41*(min(x41 , y41)) )
acc5 = -( z50*(min(x50 , y50)) + z51*(min(x51 , y51)) )
acc6 = -( z60*(min(x60 , y60)) + z61*(min(x61 , y61)) )
acc7 = -( z70*(min(x70 , y70)) + z71*(min(x71 , y71)) )
acc8 = -( z80*(min(x80 , y80)) + z81*(min(x81 , y81)) )
acc9 = -( z90*(min(x90 , y90)) + z91*(min(x91 , y91)) )
acc10 = -( z100*(min(x100 , y100)) + z101*(min(x101 , y101)) )
acc11 = -( z110*(min(x110 , y110)) + z111*(min(x111 , y111)) )
acc12 = -( z120*(min(x120 , y120)) + z121*(min(x121 , y121)) )
acc13 = -( z130*(min(x130 , y130)) + z131*(min(x131 , y131)) )
acc14 = -( z140*(min(x140 , y140)) + z141*(min(x141 , y141)) )
acc15 = -( z150*(min(x150 , y150)) + z151*(min(x151 , y151)) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_min() [2/3]

v16acc48 negmul16_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | unsigned int | xoffsets_hi,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | unsigned int | zoffsets_hi,
|  | int | zstep )

Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(min(x00 , y00)) + z01*(min(x01 , y01)) )
acc1 = -( z10*(min(x10 , y10)) + z11*(min(x11 , y11)) )
acc2 = -( z20*(min(x20 , y20)) + z21*(min(x21 , y21)) )
acc3 = -( z30*(min(x30 , y30)) + z31*(min(x31 , y31)) )
acc4 = -( z40*(min(x40 , y40)) + z41*(min(x41 , y41)) )
acc5 = -( z50*(min(x50 , y50)) + z51*(min(x51 , y51)) )
acc6 = -( z60*(min(x60 , y60)) + z61*(min(x61 , y61)) )
acc7 = -( z70*(min(x70 , y70)) + z71*(min(x71 , y71)) )
acc8 = -( z80*(min(x80 , y80)) + z81*(min(x81 , y81)) )
acc9 = -( z90*(min(x90 , y90)) + z91*(min(x91 , y91)) )
acc10 = -( z100*(min(x100 , y100)) + z101*(min(x101 , y101)) )
acc11 = -( z110*(min(x110 , y110)) + z111*(min(x111 , y111)) )
acc12 = -( z120*(min(x120 , y120)) + z121*(min(x121 , y121)) )
acc13 = -( z130*(min(x130 , y130)) + z131*(min(x131 , y131)) )
acc14 = -( z140*(min(x140 , y140)) + z141*(min(x141 , y141)) )
acc15 = -( z150*(min(x150 , y150)) + z151*(min(x151 , y151)) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul16_min() [3/3]

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

Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 = -( z00*(min(x00 , y00)) + z01*(min(x01 , y01)) )
acc1 = -( z10*(min(x10 , y10)) + z11*(min(x11 , y11)) )
acc2 = -( z20*(min(x20 , y20)) + z21*(min(x21 , y21)) )
acc3 = -( z30*(min(x30 , y30)) + z31*(min(x31 , y31)) )
acc4 = -( z40*(min(x40 , y40)) + z41*(min(x41 , y41)) )
acc5 = -( z50*(min(x50 , y50)) + z51*(min(x51 , y51)) )
acc6 = -( z60*(min(x60 , y60)) + z61*(min(x61 , y61)) )
acc7 = -( z70*(min(x70 , y70)) + z71*(min(x71 , y71)) )
acc8 = -( z80*(min(x80 , y80)) + z81*(min(x81 , y81)) )
acc9 = -( z90*(min(x90 , y90)) + z91*(min(x91 , y91)) )
acc10 = -( z100*(min(x100 , y100)) + z101*(min(x101 , y101)) )
acc11 = -( z110*(min(x110 , y110)) + z111*(min(x111 , y111)) )
acc12 = -( z120*(min(x120 , y120)) + z121*(min(x121 , y121)) )
acc13 = -( z130*(min(x130 , y130)) + z131*(min(x131 , y131)) )
acc14 = -( z140*(min(x140 , y140)) + z141*(min(x141 , y141)) )
acc15 = -( z150*(min(x150 , y150)) + z151*(min(x151 , y151)) )

Returns
  Returned accumulation vector (16 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to first lane
  xoffsets_hi | 4b offset for each lane, corresponds to 2x the lane number and each second lane is an offset to the lane before + 1. LSB apply to 8th lane
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zoffsets_hi | 4b offset for each lane, applied to input from Z buffer. LSB apply to 8th lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_abs() [1/2]

v8acc48 negmul8_abs | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03) )
acc1 = -( z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13) )
acc2 = -( z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23) )
acc3 = -( z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33) )
acc4 = -( z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43) )
acc5 = -( z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53) )
acc6 = -( z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63) )
acc7 = -( z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_abs() [2/2]

v8acc48 negmul8_abs | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the absolute value in the selected lanes from the input buffer .

acc0 = -( z00*abs(x00) + z01*abs(x01) + z02*abs(x02) + z03*abs(x03) )
acc1 = -( z10*abs(x10) + z11*abs(x11) + z12*abs(x12) + z13*abs(x13) )
acc2 = -( z20*abs(x20) + z21*abs(x21) + z22*abs(x22) + z23*abs(x23) )
acc3 = -( z30*abs(x30) + z31*abs(x31) + z32*abs(x32) + z33*abs(x33) )
acc4 = -( z40*abs(x40) + z41*abs(x41) + z42*abs(x42) + z43*abs(x43) )
acc5 = -( z50*abs(x50) + z51*abs(x51) + z52*abs(x52) + z53*abs(x53) )
acc6 = -( z60*abs(x60) + z61*abs(x61) + z62*abs(x62) + z63*abs(x63) )
acc7 = -( z70*abs(x70) + z71*abs(x71) + z72*abs(x72) + z73*abs(x73) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 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 2 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 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_max() [1/3]

v8acc48 negmul8_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03)) )
acc1 = -( z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13)) )
acc2 = -( z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23)) )
acc3 = -( z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33)) )
acc4 = -( z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43)) )
acc5 = -( z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53)) )
acc6 = -( z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63)) )
acc7 = -( z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73)) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_max() [2/3]

v8acc48 negmul8_max | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03)) )
acc1 = -( z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13)) )
acc2 = -( z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23)) )
acc3 = -( z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33)) )
acc4 = -( z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43)) )
acc5 = -( z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53)) )
acc6 = -( z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63)) )
acc7 = -( z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73)) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_max() [3/3]

v8acc48 negmul8_max | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum between the selected lanes from the input buffer .

acc0 = -( z00*(max(x00 , y00)) + z01*(max(x01 , y01)) + z02*(max(x02 , y02)) + z03*(max(x03 , y03)) )
acc1 = -( z10*(max(x10 , y10)) + z11*(max(x11 , y11)) + z12*(max(x12 , y12)) + z13*(max(x13 , y13)) )
acc2 = -( z20*(max(x20 , y20)) + z21*(max(x21 , y21)) + z22*(max(x22 , y22)) + z23*(max(x23 , y23)) )
acc3 = -( z30*(max(x30 , y30)) + z31*(max(x31 , y31)) + z32*(max(x32 , y32)) + z33*(max(x33 , y33)) )
acc4 = -( z40*(max(x40 , y40)) + z41*(max(x41 , y41)) + z42*(max(x42 , y42)) + z43*(max(x43 , y43)) )
acc5 = -( z50*(max(x50 , y50)) + z51*(max(x51 , y51)) + z52*(max(x52 , y52)) + z53*(max(x53 , y53)) )
acc6 = -( z60*(max(x60 , y60)) + z61*(max(x61 , y61)) + z62*(max(x62 , y62)) + z63*(max(x63 , y63)) )
acc7 = -( z70*(max(x70 , y70)) + z71*(max(x71 , y71)) + z72*(max(x72 , y72)) + z73*(max(x73 , y73)) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_maxdiff() [1/3]

v8acc48 negmul8_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0) )
acc1 = -( z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0) )
acc2 = -( z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0) )
acc3 = -( z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0) )
acc4 = -( z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0) )
acc5 = -( z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0) )
acc6 = -( z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0) )
acc7 = -( z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_maxdiff() [2/3]

v8acc48 negmul8_maxdiff | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0) )
acc1 = -( z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0) )
acc2 = -( z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0) )
acc3 = -( z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0) )
acc4 = -( z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0) )
acc5 = -( z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0) )
acc6 = -( z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0) )
acc7 = -( z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_maxdiff() [3/3]

v8acc48 negmul8_maxdiff | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the maximum difference between the selected lanes from the input buffer .

acc0 = -( z00*((x00 - y00 > 0) ? (x00 - y00):0) + z01*((x01 - y01 > 0) ? (x01 - y01):0) + z02*((x02 - y02 > 0) ? (x02 - y02):0) + z03*((x03 - y03 > 0) ? (x03 - y03):0) )
acc1 = -( z10*((x10 - y10 > 0) ? (x10 - y10):0) + z11*((x11 - y11 > 0) ? (x11 - y11):0) + z12*((x12 - y12 > 0) ? (x12 - y12):0) + z13*((x13 - y13 > 0) ? (x13 - y13):0) )
acc2 = -( z20*((x20 - y20 > 0) ? (x20 - y20):0) + z21*((x21 - y21 > 0) ? (x21 - y21):0) + z22*((x22 - y22 > 0) ? (x22 - y22):0) + z23*((x23 - y23 > 0) ? (x23 - y23):0) )
acc3 = -( z30*((x30 - y30 > 0) ? (x30 - y30):0) + z31*((x31 - y31 > 0) ? (x31 - y31):0) + z32*((x32 - y32 > 0) ? (x32 - y32):0) + z33*((x33 - y33 > 0) ? (x33 - y33):0) )
acc4 = -( z40*((x40 - y40 > 0) ? (x40 - y40):0) + z41*((x41 - y41 > 0) ? (x41 - y41):0) + z42*((x42 - y42 > 0) ? (x42 - y42):0) + z43*((x43 - y43 > 0) ? (x43 - y43):0) )
acc5 = -( z50*((x50 - y50 > 0) ? (x50 - y50):0) + z51*((x51 - y51 > 0) ? (x51 - y51):0) + z52*((x52 - y52 > 0) ? (x52 - y52):0) + z53*((x53 - y53 > 0) ? (x53 - y53):0) )
acc6 = -( z60*((x60 - y60 > 0) ? (x60 - y60):0) + z61*((x61 - y61 > 0) ? (x61 - y61):0) + z62*((x62 - y62 > 0) ? (x62 - y62):0) + z63*((x63 - y63 > 0) ? (x63 - y63):0) )
acc7 = -( z70*((x70 - y70 > 0) ? (x70 - y70):0) + z71*((x71 - y71 > 0) ? (x71 - y71):0) + z72*((x72 - y72 > 0) ? (x72 - y72):0) + z73*((x73 - y73 > 0) ? (x73 - y73):0) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_min() [1/3]

v8acc48 negmul8_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03)) )
acc1 = -( z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13)) )
acc2 = -( z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23)) )
acc3 = -( z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33)) )
acc4 = -( z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43)) )
acc5 = -( z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53)) )
acc6 = -( z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63)) )
acc7 = -( z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73)) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_min() [2/3]

v8acc48 negmul8_min | ( | v32int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | v32int16 | ybuff,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer using small X input buffer.

acc0 = -( z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03)) )
acc1 = -( z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13)) )
acc2 = -( z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23)) )
acc3 = -( z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33)) )
acc4 = -( z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43)) )
acc5 = -( z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53)) )
acc6 = -( z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63)) )
acc7 = -( z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73)) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ybuff | Right input buffer of 32 elements of type int16
  ystart | Starting position offset applied to all lanes for input from Y buffer. ystart is restricted to multiples of 2 as granularity for ybuff is 32-bit.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.

## ◆ negmul8_min() [3/3]

v8acc48 negmul8_min | ( | v64int16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | unsigned int | xsquare,
|  | int | ystart,
|  | unsigned int | ysquare,
|  | v16int16 | zbuff,
|  | int | zstart,
|  | unsigned int | zoffsets,
|  | int | zstep )

Multiply-negate intrinsic function after computing the minimum between the selected lanes from the input buffer .

acc0 = -( z00*(min(x00 , y00)) + z01*(min(x01 , y01)) + z02*(min(x02 , y02)) + z03*(min(x03 , y03)) )
acc1 = -( z10*(min(x10 , y10)) + z11*(min(x11 , y11)) + z12*(min(x12 , y12)) + z13*(min(x13 , y13)) )
acc2 = -( z20*(min(x20 , y20)) + z21*(min(x21 , y21)) + z22*(min(x22 , y22)) + z23*(min(x23 , y23)) )
acc3 = -( z30*(min(x30 , y30)) + z31*(min(x31 , y31)) + z32*(min(x32 , y32)) + z33*(min(x33 , y33)) )
acc4 = -( z40*(min(x40 , y40)) + z41*(min(x41 , y41)) + z42*(min(x42 , y42)) + z43*(min(x43 , y43)) )
acc5 = -( z50*(min(x50 , y50)) + z51*(min(x51 , y51)) + z52*(min(x52 , y52)) + z53*(min(x53 , y53)) )
acc6 = -( z60*(min(x60 , y60)) + z61*(min(x61 , y61)) + z62*(min(x62 , y62)) + z63*(min(x63 , y63)) )
acc7 = -( z70*(min(x70 , y70)) + z71*(min(x71 , y71)) + z72*(min(x72 , y72)) + z73*(min(x73 , y73)) )

Returns
  Returned accumulation vector (8 x int48 lanes)

Parameters

  xbuff | Input buffer of 64 elements of type int16
  xstart | Starting position offset applied to all lanes of input from X buffer. xstart is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xoffsets | 4b offset for each lane, while for each second lane, the offset is with respect to the previous lane + 1, applied to both x and y buffers. LSB apply to first lane
  xstep | Step between each column for selection in the x and y buffers. Ystep is symmetric to xstep (ystep advances by -xstep). xstep is restricted to multiples of 2 as granularity for xbuff is 32-bit.
  xsquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  ystart | Starting position offset applied to all lanes for input from Y buffer.
  ysquare | Select order of the mini-permute square (default=0x3210). LSB apply to first element
  zbuff | Input buffer of 16 elements of type int16
  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.
  zoffsets | 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
  zstep | Step between each column for selection in the zbuffer.

Note
  - This intrinsic uses the 'square' parameter, to have more information on how to use this please go here
  - For more information on how data selection works from the buffers go here. For this intrinsic, the data buffer uses the 16bx16b scheme and the coefficient buffer uses the general scheme.
  - Parameter 'zstart' must be a compile time constant.