For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/get-started.md).
Mojo function
vpdpwssds
def vpdpwssds[width: SIMDLength, a_type: DType, b_type: DType, c_type: DType](src: SIMD[c_type, width], a: SIMD[a_type, (width * SIMDLength(2))], b: SIMD[b_type, (width * SIMDLength(2))]) -> SIMD[c_type, width]
Computes a saturating multiply-accumulate of signed 16-bit integers using the VPDPWSSDS Intel AVX-512 VNNI instruction.
Like vpdpwssd but saturates the 32-bit accumulator on overflow instead of wrapping.
Parameters:
- βwidth (
SIMDLength): Number of int32 output elements (4, 8, or 16). - βa_type (
DType): DType of the a operand (int16). - βb_type (
DType): DType of the b operand (int16). - βc_type (
DType): DType of the accumulator; must be int32.
Args:
- βsrc (
SIMD[c_type, width]): Int32 accumulator vector. - βa (
SIMD[a_type, (width * SIMDLength(2))]): Int16 input vector, twice the output width. - βb (
SIMD[b_type, (width * SIMDLength(2))]): Int16 input vector, twice the output width.
Returns:
SIMD[c_type, width]: Updated int32 accumulator after saturating multiply-add.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!