There are rich sets of MAC intrinsic with additional operations like pre-adding, pre-subtraction, and conjugation. The naming convention for the vector MAC intrinsics is as follows. Optional characteristics are shown in [] and mandatory ones in {}.
[l]{mac|msc|mul|negmul}{2|4|8|16}[_abs|_max|_min|_maxdiff][_conj][{_sym|_antisym}[_ct|_uct]][_c|_cc|_cn|_nc]
Every operation will either be a multiplication, initializing an accumulator, or a MAC operation which accumulates to a running accumulator of 2, 4, 8, or 16 lanes.
-
l - Denotes that an accumulator with 80-bit lanes is used for the operation.
-
symandantisym - Indicates the use of pre-adding and pre-subtraction respectively.
-
max,min, andmaxdiff - Indicates the pre-selection of lanes in the
xbuffbased on the maximum, minimum, or maximum difference value. -
abs - Indicates the pre-computation of the absolute value in the
xbuff. -
ct - Used for partial pre-adding and pre-subtraction (separate selection for the data input from X for the final column).
-
uct - Used for unit center optimization for certain types of FIR filters. Refer to the Versal ACAP AI Engine Intrinsics Documentation (UG1078) for more information.
-
nandc - Used to indicate that the complex conjugate will be used
for one of the input buffers with complex values:
-
c - The only complex input buffer will be conjugated.
-
cn - Complex conjugate of X (or XY if pre-adding is used) buffer.
-
nc - Complex conjugate of Z buffer.
-
cc - Complex conjugate of both X (or XY if pre-adding is used) and Z buffers.
-
-
conj - Indicates that the complex conjugate of Z will be used when multiplying the data input from Y.