| AI Engine-ML Intrinsics User Guide (v2025.2)

Loading...
Searching...
No Matches
Multiply-accumulate of 32b x 16b complex integer datatypes
Vector Operations » Multiply Accumulate

## Overview

Matrix multiplications in which matrix A has complex data elements of 32 bit and matrix B has complex data elements of 16 bit.

For an explanation how these operations works see Multiply Accumulate.

## Channel by channel complex multiplication of (1x1) with (1x1)
v8cacc64 | mul_elem_8 (v8cint32 a, v16cint16 b)
v8cacc64 | negmul_elem_8 (v8cint32 a, v16cint16 b)
v8cacc64 | mac_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | msc_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmac_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmsc_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | addmac_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | addmsc_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submac_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submsc_elem_8 (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)

## Channel by channel complex multiplication of (1x1) with (1x1) with dynamic negation of multiplication result
v8cacc64 | mul_elem_8_conf (v8cint32 a, v16cint16 b, int sub_mask, int sub_mul)
v8cacc64 | negmul_elem_8_conf (v8cint32 a, v16cint16 b, int sub_mask, int sub_mul)

## Channel by channel complex multiplication of (1x1) with (1x1) with dynamic negation of multiplication result, zeroing of acc1, and negation of acc1
v8cacc64 | mac_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | msc_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | negmsc_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | negmac_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | addmac_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v8cacc64 | addmsc_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v8cacc64 | submac_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v8cacc64 | submsc_elem_8_conf (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)

## Channel by channel complex multiplication of (1x1) with (1x1) with dynamic sign and dynamic negation of multiplication result
v8cacc64 | mul_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, int sub_mask, int sub_mul)
v8cacc64 | negmul_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, int sub_mask, int sub_mul)
v8cacc64 | mac_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | msc_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | negmsc_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | negmac_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | addmac_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v8cacc64 | addmsc_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v8cacc64 | submac_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v8cacc64 | submsc_elem_8_conf (v8cint32 a, int sgn_x, v16cint16 b, int sgn_y, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)

## Channel by channel complex multiplication of (1x1) with (1x1) with a & b conjugate
v8cacc64 | mul_elem_8_cc (v8cint32 a, v16cint16 b)
v8cacc64 | negmul_elem_8_cc (v8cint32 a, v16cint16 b)
v8cacc64 | mac_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | msc_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmac_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmsc_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | addmac_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | addmsc_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submac_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submsc_elem_8_cc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)

## Channel by channel complex multiplication of (1x1) with (1x1) with a conjugate only
v8cacc64 | mul_elem_8_cn (v8cint32 a, v16cint16 b)
v8cacc64 | negmul_elem_8_cn (v8cint32 a, v16cint16 b)
v8cacc64 | mac_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | msc_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmac_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmsc_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | addmac_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | addmsc_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submac_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submsc_elem_8_cn (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)

## Channel by channel complex multiplication of (1x1) with (1x1) with b conjugate only
v8cacc64 | mul_elem_8_nc (v8cint32 a, v16cint16 b)
v8cacc64 | negmul_elem_8_nc (v8cint32 a, v16cint16 b)
v8cacc64 | mac_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | msc_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmac_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | negmsc_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1)
v8cacc64 | addmac_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | addmsc_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submac_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | submsc_elem_8_nc (v8cint32 a, v16cint16 b, v8cacc64 acc1, v8cacc64 acc2)

## Function Documentation

## ◆ addmac_elem_8()

v8cacc64 addmac_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ addmac_elem_8_cc()

v8cacc64 addmac_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ addmac_elem_8_cn()

v8cacc64 addmac_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ addmac_elem_8_conf() [1/2]

v8cacc64 addmac_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ addmac_elem_8_conf() [2/2]

v8cacc64 addmac_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ addmac_elem_8_nc()

v8cacc64 addmac_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ addmsc_elem_8()

v8cacc64 addmsc_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ addmsc_elem_8_cc()

v8cacc64 addmsc_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ addmsc_elem_8_cn()

v8cacc64 addmsc_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ addmsc_elem_8_conf() [1/2]

v8cacc64 addmsc_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result.
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ addmsc_elem_8_conf() [2/2]

v8cacc64 addmsc_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ addmsc_elem_8_nc()

v8cacc64 addmsc_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ mac_elem_8()

v8cacc64 mac_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ mac_elem_8_cc()

v8cacc64 mac_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ mac_elem_8_cn()

v8cacc64 mac_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ mac_elem_8_conf() [1/2]

v8cacc64 mac_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1

Returns
  Result of operation

## ◆ mac_elem_8_conf() [2/2]

v8cacc64 mac_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1

Returns
  Result of operation

## ◆ mac_elem_8_nc()

v8cacc64 mac_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ msc_elem_8()

v8cacc64 msc_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ msc_elem_8_cc()

v8cacc64 msc_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ msc_elem_8_cn()

v8cacc64 msc_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ msc_elem_8_conf() [1/2]

v8cacc64 msc_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result. If a bit is set the corresponding output accumulator lane is negated.
  sub_acc1 | Negation mask of acc1. If a bit is set the corresponding accumulator lane of acc1 is negated.

Returns
  Result of operation

## ◆ msc_elem_8_conf() [2/2]

v8cacc64 msc_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  shift16 | Shift mask of input accumulator acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1

Returns
  Result of operation

## ◆ msc_elem_8_nc()

v8cacc64 msc_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ mul_elem_8()

v8cacc64 mul_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ mul_elem_8_cc()

v8cacc64 mul_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ mul_elem_8_cn()

v8cacc64 mul_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ mul_elem_8_conf() [1/2]

v8cacc64 mul_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | int | sub_mask,
|  | int | sub_mul )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result. If a bit is set the corresponding output accumulator lane is negated.

Returns
  Result of operation

## ◆ mul_elem_8_conf() [2/2]

v8cacc64 mul_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | int | sub_mask,
|  | int | sub_mul )

Parameters

  a | Matrix A
  b | Matrix B
  sub_mul | Negation mask for multiplication result
  sub_mask | Negation mask of complex multiplication

Returns
  Result of operation

## ◆ mul_elem_8_nc()

v8cacc64 mul_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ negmac_elem_8()

v8cacc64 negmac_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of MAC operation

## ◆ negmac_elem_8_cc()

v8cacc64 negmac_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of MAC operation

## ◆ negmac_elem_8_cn()

v8cacc64 negmac_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of MAC operation

## ◆ negmac_elem_8_conf() [1/2]

v8cacc64 negmac_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1

Returns
  Result of operation

## ◆ negmac_elem_8_conf() [2/2]

v8cacc64 negmac_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1

Returns
  Result of operation

## ◆ negmac_elem_8_nc()

v8cacc64 negmac_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of MAC operation

## ◆ negmsc_elem_8()

v8cacc64 negmsc_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ negmsc_elem_8_cc()

v8cacc64 negmsc_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ negmsc_elem_8_cn()

v8cacc64 negmsc_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ negmsc_elem_8_conf() [1/2]

v8cacc64 negmsc_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1

Returns
  Result of operation

## ◆ negmsc_elem_8_conf() [2/2]

v8cacc64 negmsc_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1. If a bit is set the corresponding accumulator lane of acc1 is negated.

Returns
  Result of operation

## ◆ negmsc_elem_8_nc()

v8cacc64 negmsc_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input

Returns
  Result of operation

## ◆ negmul_elem_8()

v8cacc64 negmul_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ negmul_elem_8_cc()

v8cacc64 negmul_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ negmul_elem_8_cn()

v8cacc64 negmul_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ negmul_elem_8_conf() [1/2]

v8cacc64 negmul_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | int | sub_mask,
|  | int | sub_mul )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result

Returns
  Result of operation

## ◆ negmul_elem_8_conf() [2/2]

v8cacc64 negmul_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | int | sub_mask,
|  | int | sub_mul )

Parameters

  a | Matrix A
  b | Matrix B
  sub_mul | Negation mask for multiplication result. If a bit of sub_mul is set the corresponding vector lane of the output accumulator will be negated.
  sub_mask | Negation mask of complex multiplication

Returns
  Result of operation

## ◆ negmul_elem_8_nc()

v8cacc64 negmul_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b )

Parameters

  a | Matrix A
  b | Matrix B

Returns
  Result of operation

## ◆ submac_elem_8()

v8cacc64 submac_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ submac_elem_8_cc()

v8cacc64 submac_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ submac_elem_8_cn()

v8cacc64 submac_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ submac_elem_8_conf() [1/2]

v8cacc64 submac_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ submac_elem_8_conf() [2/2]

v8cacc64 submac_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ submac_elem_8_nc()

v8cacc64 submac_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ submsc_elem_8()

v8cacc64 submsc_elem_8 | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ submsc_elem_8_cc()

v8cacc64 submsc_elem_8_cc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ submsc_elem_8_cn()

v8cacc64 submsc_elem_8_cn | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation

## ◆ submsc_elem_8_conf() [1/2]

v8cacc64 submsc_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | v16cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  sgn_x | Sign mask for matrix A
  b | Matrix B
  sgn_y | Sign mask for matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result.
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ submsc_elem_8_conf() [2/2]

v8cacc64 submsc_elem_8_conf | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2,
|  | int | zero_acc1,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input
  zero_acc1 | Zeroing mask for acc1
  sub_mask | Negation mask of complex multiplication
  sub_mul | Negation mask of multiplication result
  sub_acc1 | Negation mask of acc1
  sub_acc2 | Negation mask of acc2

Returns
  Result of operation

## ◆ submsc_elem_8_nc()

v8cacc64 submsc_elem_8_nc | ( | v8cint32 | a,
|  | v16cint16 | b,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

Parameters

  a | Matrix A
  b | Matrix B
  acc1 | Accumulator 1 input
  acc2 | Accumulator 2 input

Returns
  Result of operation