| AI Engine-ML v2 Intrinsics User Guide (v2026.1)

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

## elem_8
v8cacc64 | mul_elem_8 (v8cint32 a, cint16 b)
v8cacc64 | negmul_elem_8 (v8cint32 a, cint16 b)
v8cacc64 | mac_elem_8 (v8cint32 a, cint16 b, v8cacc64 acc)
v8cacc64 | msc_elem_8 (v8cint32 a, cint16 b, v8cacc64 acc)
v8cacc64 | addmac_elem_8 (v8cint32 a, cint16 b, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | addmsc_elem_8 (v8cint32 a, cint16 b, v8cacc64 acc1, v8cacc64 acc2)

## elem_8 with dynamic sign
v8cacc64 | mul_elem_8 (v8cint32 a, int sgn_x, cint16 b, int sgn_y)
v8cacc64 | negmul_elem_8 (v8cint32 a, int sgn_x, cint16 b, int sgn_y)
v8cacc64 | mac_elem_8 (v8cint32 a, int sgn_x, cint16 b, int sgn_y, v8cacc64 acc)
v8cacc64 | msc_elem_8 (v8cint32 a, int sgn_x, cint16 b, int sgn_y, v8cacc64 acc)
v8cacc64 | addmac_elem_8 (v8cint32 a, int sgn_x, cint16 b, int sgn_y, v8cacc64 acc1, v8cacc64 acc2)
v8cacc64 | addmsc_elem_8 (v8cint32 a, int sgn_x, cint16 b, int sgn_y, v8cacc64 acc1, v8cacc64 acc2)

## elem_8 with dynamic negation of multiplication result
v8cacc64 | mul_elem_8_conf (v8cint32 a, cint16 b, int sub_mask, int sub_mul)
v8cacc64 | negmul_elem_8_conf (v8cint32 a, cint16 b, int sub_mask, int sub_mul)

## elem_8 with dynamic negation of multiplication result, zeroing of acc1, negation of acc1
v8cacc64 | mac_elem_8_conf (v8cint32 a, cint16 b, v8cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | msc_elem_8_conf (v8cint32 a, cint16 b, v8cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | addmac_elem_8_conf (v8cint32 a, cint16 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, cint16 b, v8cacc64 acc1, v8cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)

## elem_8 with dynamic sign and dynamic negation of multiplication result
v8cacc64 | mul_elem_8_conf (v8cint32 a, int sgn_x, cint16 b, int sgn_y, int sub_mask, int sub_mul)
v8cacc64 | negmul_elem_8_conf (v8cint32 a, int sgn_x, cint16 b, int sgn_y, int sub_mask, int sub_mul)
v8cacc64 | mac_elem_8_conf (v8cint32 a, int sgn_x, cint16 b, int sgn_y, v8cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | msc_elem_8_conf (v8cint32 a, int sgn_x, cint16 b, int sgn_y, v8cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v8cacc64 | addmac_elem_8_conf (v8cint32 a, int sgn_x, cint16 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, cint16 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)

## elem_16
*‍/MAC_F(v16cacc64, 32, 0, 1, v8cint32, cint16, 1,1,I64, elem_16, BMODE_I64_32x16, CMODE_SEL_DONT_CARE, CMODE_SEL_DONT_CARE, VARIANT_32x16_2_elem_cplx, intr_gpvectorop_mul_elem_scl_32bx16b_cmplx, 0, _);
v16cacc64 | mul_elem_16 (v16cint32 a, cint16 b)
v16cacc64 | negmul_elem_16 (v16cint32 a, cint16 b)
v16cacc64 | mac_elem_16 (v16cint32 a, cint16 b, v16cacc64 acc)
v16cacc64 | msc_elem_16 (v16cint32 a, cint16 b, v16cacc64 acc)
v16cacc64 | addmac_elem_16 (v16cint32 a, cint16 b, v16cacc64 acc1, v16cacc64 acc2)
v16cacc64 | addmsc_elem_16 (v16cint32 a, cint16 b, v16cacc64 acc1, v16cacc64 acc2)

## elem_16 with dynamic sign
v16cacc64 | mul_elem_16 (v16cint32 a, int sgn_x, cint16 b, int sgn_y)
v16cacc64 | negmul_elem_16 (v16cint32 a, int sgn_x, cint16 b, int sgn_y)
v16cacc64 | mac_elem_16 (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc)
v16cacc64 | msc_elem_16 (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc)
v16cacc64 | addmac_elem_16 (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc1, v16cacc64 acc2)
v16cacc64 | addmsc_elem_16 (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc1, v16cacc64 acc2)

## elem_16 with dynamic negation of multiplication result
v16cacc64 | mul_elem_16_conf (v16cint32 a, cint16 b, int sub_mask, int sub_mul)
v16cacc64 | negmul_elem_16_conf (v16cint32 a, cint16 b, int sub_mask, int sub_mul)

## elem_16 with dynamic negation of multiplication result, zeroing of acc1, negation of acc1
v16cacc64 | mac_elem_16_conf (v16cint32 a, cint16 b, v16cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v16cacc64 | msc_elem_16_conf (v16cint32 a, cint16 b, v16cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v16cacc64 | addmac_elem_16_conf (v16cint32 a, cint16 b, v16cacc64 acc1, v16cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v16cacc64 | addmsc_elem_16_conf (v16cint32 a, cint16 b, v16cacc64 acc1, v16cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)

## elem_16 with dynamic sign and dynamic negation of multiplication result
v16cacc64 | mul_elem_16_conf (v16cint32 a, int sgn_x, cint16 b, int sgn_y, int sub_mask, int sub_mul)
v16cacc64 | negmul_elem_16_conf (v16cint32 a, int sgn_x, cint16 b, int sgn_y, int sub_mask, int sub_mul)
v16cacc64 | mac_elem_16_conf (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v16cacc64 | msc_elem_16_conf (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc, int zero_acc, int shift16, int sub_mask, int sub_mul, int sub_acc1)
v16cacc64 | addmac_elem_16_conf (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc1, v16cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)
v16cacc64 | addmsc_elem_16_conf (v16cint32 a, int sgn_x, cint16 b, int sgn_y, v16cacc64 acc1, v16cacc64 acc2, int zero_acc1, int shift16, int sub_mask, int sub_mul, int sub_acc1, int sub_acc2)

## Detailed Description

## Function Documentation

## ◆ addmac_elem_16() [1/2]

v16cacc64 addmac_elem_16 | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2 )

## ◆ addmac_elem_16() [2/2]

v16cacc64 addmac_elem_16 | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2 )

## ◆ addmac_elem_16_conf() [1/2]

v16cacc64 addmac_elem_16_conf | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ addmac_elem_16_conf() [2/2]

v16cacc64 addmac_elem_16_conf | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ addmac_elem_8() [1/2]

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

## ◆ addmac_elem_8() [2/2]

v8cacc64 addmac_elem_8 | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

## ◆ addmac_elem_8_conf() [1/2]

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

## ◆ addmac_elem_8_conf() [2/2]

v8cacc64 addmac_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | 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 )

## ◆ addmsc_elem_16() [1/2]

v16cacc64 addmsc_elem_16 | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2 )

## ◆ addmsc_elem_16() [2/2]

v16cacc64 addmsc_elem_16 | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2 )

## ◆ addmsc_elem_16_conf() [1/2]

v16cacc64 addmsc_elem_16_conf | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ addmsc_elem_16_conf() [2/2]

v16cacc64 addmsc_elem_16_conf | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc1,
|  | v16cacc64 | acc2,
|  | int | zero_acc1,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ addmsc_elem_8() [1/2]

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

## ◆ addmsc_elem_8() [2/2]

v8cacc64 addmsc_elem_8 | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc1,
|  | v8cacc64 | acc2 )

## ◆ addmsc_elem_8_conf() [1/2]

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

## ◆ addmsc_elem_8_conf() [2/2]

v8cacc64 addmsc_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | 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 )

## ◆ mac_elem_16() [1/2]

v16cacc64 mac_elem_16 | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc )

## ◆ mac_elem_16() [2/2]

v16cacc64 mac_elem_16 | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc )

## ◆ mac_elem_16_conf() [1/2]

v16cacc64 mac_elem_16_conf | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ mac_elem_16_conf() [2/2]

v16cacc64 mac_elem_16_conf | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ mac_elem_8() [1/2]

v8cacc64 mac_elem_8 | ( | v8cint32 | a,
|  | cint16 | b,
|  | v8cacc64 | acc )

## ◆ mac_elem_8() [2/2]

v8cacc64 mac_elem_8 | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc )

## ◆ mac_elem_8_conf() [1/2]

v8cacc64 mac_elem_8_conf | ( | v8cint32 | a,
|  | cint16 | b,
|  | v8cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ mac_elem_8_conf() [2/2]

v8cacc64 mac_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ msc_elem_16() [1/2]

v16cacc64 msc_elem_16 | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc )

## ◆ msc_elem_16() [2/2]

v16cacc64 msc_elem_16 | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc )

## ◆ msc_elem_16_conf() [1/2]

v16cacc64 msc_elem_16_conf | ( | v16cint32 | a,
|  | cint16 | b,
|  | v16cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ msc_elem_16_conf() [2/2]

v16cacc64 msc_elem_16_conf | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v16cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ msc_elem_8() [1/2]

v8cacc64 msc_elem_8 | ( | v8cint32 | a,
|  | cint16 | b,
|  | v8cacc64 | acc )

## ◆ msc_elem_8() [2/2]

v8cacc64 msc_elem_8 | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc )

## ◆ msc_elem_8_conf() [1/2]

v8cacc64 msc_elem_8_conf | ( | v8cint32 | a,
|  | cint16 | b,
|  | v8cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ msc_elem_8_conf() [2/2]

v8cacc64 msc_elem_8_conf | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | v8cacc64 | acc,
|  | int | zero_acc,
|  | int | shift16,
|  | int | sub_mask,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ mul_elem_16() [1/2]

v16cacc64 mul_elem_16 | ( | v16cint32 | a,
|  | cint16 | b )

## ◆ mul_elem_16() [2/2]

v16cacc64 mul_elem_16 | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y )

## ◆ mul_elem_16_conf() [1/2]

v16cacc64 mul_elem_16_conf | ( | v16cint32 | a,
|  | cint16 | b,
|  | int | sub_mask,
|  | int | sub_mul )

## ◆ mul_elem_16_conf() [2/2]

v16cacc64 mul_elem_16_conf | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | int | sub_mask,
|  | int | sub_mul )

## ◆ mul_elem_8() [1/2]

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

## ◆ mul_elem_8() [2/2]

v8cacc64 mul_elem_8 | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y )

## ◆ mul_elem_8_conf() [1/2]

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

## ◆ mul_elem_8_conf() [2/2]

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

## ◆ negmul_elem_16() [1/2]

v16cacc64 negmul_elem_16 | ( | v16cint32 | a,
|  | cint16 | b )

## ◆ negmul_elem_16() [2/2]

v16cacc64 negmul_elem_16 | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y )

## ◆ negmul_elem_16_conf() [1/2]

v16cacc64 negmul_elem_16_conf | ( | v16cint32 | a,
|  | cint16 | b,
|  | int | sub_mask,
|  | int | sub_mul )

## ◆ negmul_elem_16_conf() [2/2]

v16cacc64 negmul_elem_16_conf | ( | v16cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y,
|  | int | sub_mask,
|  | int | sub_mul )

## ◆ negmul_elem_8() [1/2]

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

## ◆ negmul_elem_8() [2/2]

v8cacc64 negmul_elem_8 | ( | v8cint32 | a,
|  | int | sgn_x,
|  | cint16 | b,
|  | int | sgn_y )

## ◆ negmul_elem_8_conf() [1/2]

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

## ◆ negmul_elem_8_conf() [2/2]

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