xvbf16ger2
VSX Vector BFloat16 GER (Rank-2 Update)
Performs BFloat16 (Brain Float) matrix multiply accumulate.
Details
Performs a rank-2 outer product of two BFloat16 (Brain Float) vectors, accumulating results into the 512-bit accumulator AT. BFloat16 is a truncated 32-bit floating-point format used in machine-learning workloads. This MMA instruction does not affect condition registers or status fields.
Pseudocode Operation
for i = 0 to 31 do
for j = 0 to 31 do
ACC[AT][result_lane] ← ACC[AT][result_lane] + (bf16)XA[16×i:16×i+15] × (bf16)XB[16×j:16×j+15]
end for
end for
Programming Note
The xvbf16ger2 instruction is used for performing a rank-2 update on the accumulator using bfloat16 values from two VSX registers. Ensure that the input registers are properly aligned and that the operation does not exceed the bounds of the accumulator to avoid saturation issues. This instruction operates at privilege level 0.
Example
Encoding
Operands
-
AT
Accumulator -
XA
Src A (BF16) -
XB
Src B (BF16)