VWMACC.VV

Vector Widening Multiply-Accumulate

VWMACC.VV vd, vs1, vs2, vm

Computes vd = vd + (vs1 * vs2) with widening (N*N -> 2N + 2N).

Details

Performs a widening operation, producing results twice as wide as the source elements. Results are written to vd using 2× the element grouping (EEW). The number of elements and masking are governed by vl and vm.

Pseudocode Operation

foreach(i < vl): vd[i] = vd[i] + (sext(vs1[i]) * sext(vs2[i]));

Example

VWMACC.VV v1, v2, v4, v0.t

Encoding

Binary Layout
111101
31:26
vm
25
vs2
24:20
vs1
19:15
000
14:12
vd
11:7
1010111
6:0
 
Format OPIVV
Opcode 0x57
Extension V

Operands

  • vd
    Dest/Acc (2*SEW)
  • vs1
    Src 1 (SEW)
  • vs2
    Src 2 (SEW)