xvbf16ger2

VSX Vector BFloat16 GER (Rank-2 Update)

xvbf16ger2 AT, XA, XB

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

xvbf16ger2 acc0, vs2, vs3

Encoding

Binary Layout
60
0
AT
6
XA
11
XB
16
51
21
 
Format XX3-form
Opcode 0xF0000033
Extension MMA
Registers Altered ACC

Operands

  • AT
    Accumulator
  • XA
    Src A (BF16)
  • XB
    Src B (BF16)