| AI Engine-ML v2 Intrinsics User Guide v2025.2

Loading...
Searching...
No Matches
Multiply-accumulate of MX4 datatypes
Vector Operations » Multiply Accumulate

## 4x16_16x16T
v64accfloat | mul_4x16_16x16T (v128mx4 a, v256mx4 b)
v64accfloat | negmul_4x16_16x16T (v128mx4 a, v256mx4 b)
v64accfloat | mac_4x16_16x16T (v128mx4 a, v256mx4 b, v64accfloat acc)
v64accfloat | msc_4x16_16x16T (v128mx4 a, v256mx4 b, v64accfloat acc)
v64accfloat | addmac_4x16_16x16T (v128mx4 a, v256mx4 b, v64accfloat acc1, v64accfloat acc2)
v64accfloat | addmsc_4x16_16x16T (v128mx4 a, v256mx4 b, v64accfloat acc1, v64accfloat acc2)

## 4x16_16x16T with dynamic sign
v64accfloat | mul_4x16_16x16T (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y)
v64accfloat | negmul_4x16_16x16T (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y)
v64accfloat | mac_4x16_16x16T (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc)
v64accfloat | msc_4x16_16x16T (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc)
v64accfloat | addmac_4x16_16x16T (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc1, v64accfloat acc2)
v64accfloat | addmsc_4x16_16x16T (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc1, v64accfloat acc2)

## 4x16_16x16T with dynamic negation of multiplication result
v64accfloat | mul_4x16_16x16T_conf (v128mx4 a, v256mx4 b, int sub_mul)
v64accfloat | negmul_4x16_16x16T_conf (v128mx4 a, v256mx4 b, int sub_mul)

## 4x16_16x16T with dynamic negation of multiplication result, zeroing of acc1, negation of acc1
v64accfloat | mac_4x16_16x16T_conf (v128mx4 a, v256mx4 b, v64accfloat acc, int zero_acc, int sub_mul, int sub_acc1)
v64accfloat | msc_4x16_16x16T_conf (v128mx4 a, v256mx4 b, v64accfloat acc, int zero_acc, int sub_mul, int sub_acc1)
v64accfloat | addmac_4x16_16x16T_conf (v128mx4 a, v256mx4 b, v64accfloat acc1, v64accfloat acc2, int zero_acc1, int sub_mul, int sub_acc1, int sub_acc2)
v64accfloat | addmsc_4x16_16x16T_conf (v128mx4 a, v256mx4 b, v64accfloat acc1, v64accfloat acc2, int zero_acc1, int sub_mul, int sub_acc1, int sub_acc2)

## 4x16_16x16T with dynamic sign and dynamic negation of multiplication result
v64accfloat | mul_4x16_16x16T_conf (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, int sub_mul)
v64accfloat | negmul_4x16_16x16T_conf (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, int sub_mul)
v64accfloat | mac_4x16_16x16T_conf (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc, int zero_acc, int sub_mul, int sub_acc1)
v64accfloat | msc_4x16_16x16T_conf (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc, int zero_acc, int sub_mul, int sub_acc1)
v64accfloat | addmac_4x16_16x16T_conf (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc1, v64accfloat acc2, int zero_acc1, int sub_mul, int sub_acc1, int sub_acc2)
v64accfloat | addmsc_4x16_16x16T_conf (v128mx4 a, int sgn_x, v256mx4 b, int sgn_y, v64accfloat acc1, v64accfloat acc2, int zero_acc1, int sub_mul, int sub_acc1, int sub_acc2)

## Detailed Description

## Function Documentation

## ◆ addmac_4x16_16x16T() [1/2]

v64accfloat addmac_4x16_16x16T | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2 )

## ◆ addmac_4x16_16x16T() [2/2]

v64accfloat addmac_4x16_16x16T | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2 )

## ◆ addmac_4x16_16x16T_conf() [1/2]

v64accfloat addmac_4x16_16x16T_conf | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2,
|  | int | zero_acc1,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ addmac_4x16_16x16T_conf() [2/2]

v64accfloat addmac_4x16_16x16T_conf | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2,
|  | int | zero_acc1,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ addmsc_4x16_16x16T() [1/2]

v64accfloat addmsc_4x16_16x16T | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2 )

## ◆ addmsc_4x16_16x16T() [2/2]

v64accfloat addmsc_4x16_16x16T | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2 )

## ◆ addmsc_4x16_16x16T_conf() [1/2]

v64accfloat addmsc_4x16_16x16T_conf | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2,
|  | int | zero_acc1,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ addmsc_4x16_16x16T_conf() [2/2]

v64accfloat addmsc_4x16_16x16T_conf | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc1,
|  | v64accfloat | acc2,
|  | int | zero_acc1,
|  | int | sub_mul,
|  | int | sub_acc1,
|  | int | sub_acc2 )

## ◆ mac_4x16_16x16T() [1/2]

v64accfloat mac_4x16_16x16T | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc )

## ◆ mac_4x16_16x16T() [2/2]

v64accfloat mac_4x16_16x16T | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc )

## ◆ mac_4x16_16x16T_conf() [1/2]

v64accfloat mac_4x16_16x16T_conf | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc,
|  | int | zero_acc,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ mac_4x16_16x16T_conf() [2/2]

v64accfloat mac_4x16_16x16T_conf | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc,
|  | int | zero_acc,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ msc_4x16_16x16T() [1/2]

v64accfloat msc_4x16_16x16T | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc )

## ◆ msc_4x16_16x16T() [2/2]

v64accfloat msc_4x16_16x16T | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc )

## ◆ msc_4x16_16x16T_conf() [1/2]

v64accfloat msc_4x16_16x16T_conf | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | v64accfloat | acc,
|  | int | zero_acc,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ msc_4x16_16x16T_conf() [2/2]

v64accfloat msc_4x16_16x16T_conf | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | v64accfloat | acc,
|  | int | zero_acc,
|  | int | sub_mul,
|  | int | sub_acc1 )

## ◆ mul_4x16_16x16T() [1/2]

v64accfloat mul_4x16_16x16T | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y )

## ◆ mul_4x16_16x16T() [2/2]

v64accfloat mul_4x16_16x16T | ( | v128mx4 | a,
|  | v256mx4 | b )

## ◆ mul_4x16_16x16T_conf() [1/2]

v64accfloat mul_4x16_16x16T_conf | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | int | sub_mul )

## ◆ mul_4x16_16x16T_conf() [2/2]

v64accfloat mul_4x16_16x16T_conf | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | int | sub_mul )

## ◆ negmul_4x16_16x16T() [1/2]

v64accfloat negmul_4x16_16x16T | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y )

## ◆ negmul_4x16_16x16T() [2/2]

v64accfloat negmul_4x16_16x16T | ( | v128mx4 | a,
|  | v256mx4 | b )

## ◆ negmul_4x16_16x16T_conf() [1/2]

v64accfloat negmul_4x16_16x16T_conf | ( | v128mx4 | a,
|  | int | sgn_x,
|  | v256mx4 | b,
|  | int | sgn_y,
|  | int | sub_mul )

## ◆ negmul_4x16_16x16T_conf() [2/2]

v64accfloat negmul_4x16_16x16T_conf | ( | v128mx4 | a,
|  | v256mx4 | b,
|  | int | sub_mul )