xvf16ger2

VSX Vector Float16 GER (Rank-2 Update)

xvf16ger2 AT, XA, XB

Performs a vector floating-point general element-wise rank-2 update operation.

Details

The xvf16ger2 instruction performs a rank-2 update accumulation of two outer products on matrices contained in VSX registers. It multiplies corresponding elements of two 4x2 bfloat16 matrices and accumulates the results into a 4x4 single-precision floating-point accumulator.

Pseudocode Operation

for i=0 to 3, j=0 to 3:
    ACC[AT][i][j] = fmadds(X[i][1],Y[j][1],fmulsx(X[i][0],Y[j][0]))

Programming Note

The xvf16ger2 instruction is useful for performing matrix operations in VSX registers, specifically for rank-2 update accumulations. Ensure that the input matrices are correctly aligned and that the destination accumulator register is properly initialized to avoid incorrect results. This instruction operates at a high privilege level and may raise exceptions if the operands are not valid bfloat16 values.

Example

xvf16ger2 acc0, vs2, vs3

Encoding

Binary Layout
0
0
6
6
9
9
11
11
16
16
21
21
29
29
30
30
31
31
 
Format XX3-form
Opcode 0xF0000013
Extension MMA

Operands

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