How does VMACC.VV handle masking?
With vm=0, v0 selects active elements; with vm=1, all body elements participate. Inactive and tail elements follow the current policies.
Add the integer product of vs1/scalar and vs2 to the old vd.
VMACC.VV is a destructive RISC-V V integer multiply-add instruction. It computes vd[i] = vd[i] + vs2[i] * the second operand. Multiplication and addition produce the low SEW-width result and do not set integer exception flags.
VMACC.VV writes only active elements; integer overflow keeps the low SEW bits and does not trap.
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vmacc.vv v1, v2, v3 # v1[i] = v2[i]*v3[i] + v1[i]».
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vmacc.vv v1, v2, v3 # v1[i] = v2[i]*v3[i] + v1[i]».
Understand this scenario with real code like «vsetvli t0, a0, e32, m1, ta, ma vmacc.vv v1, v2, v3 # v1[i] = v2[i]*v3[i] + v1[i]».
With vm=0, v0 selects active elements; with vm=1, all body elements participate. Inactive and tail elements follow the current policies.