Operand Breakdown
Syntax: vfwredusum.vs vd, vs2, vs1[, v0.t]. 32-bit OP-V: opcode=1010111, funct3=001, funct6=110001.
vs2 uses EEW=SEW, EMUL=LMUL; the 2×SEW seed vs1[0] and result vd[0] each occupy element 0 of any single vector register (EMUL=1), without even-register alignment. The destination may overlap sources and v0; a register cannot be read with different source EEWs.
Reduce wide vs1[0] and promoted active sources through a tree. Each node has at least the range/precision of the 2×SEW format and rounds under dynamic frm; the final result rounds to 2×SEW. The tree is deterministic for given vtype/vl, but results may differ across implementations. An extra additive identity is permitted (+0 for RDN, -0 otherwise). With no active sources, NaNs may propagate or canonicalize, and sNaN may raise NV.
Omit v0.t for vm=1; include it for vm=0. Masked-off sources raise no FP exceptions; active exceptions accrue in fflags. One register cannot be read as both an EEW=1 mask and different-EEW data source. The seed always participates, independent of mask bit 0. Nonzero vstart is illegal. vl=0 updates no destination and does not copy the seed; other destination elements are tail governed only by vta. ta/ma does not guarantee zeros; successful execution resets vstart=0.
V 1.0 supports RV32/RV64 and depends on F/D. Require supported formats, valid vtype, and enabled VS/FS; with H and virtualization V=1, vsstatus.VS/FS must also be enabled. Invalid frm use is reserved even at vl=0; vxrm is not used. This finite model fixes SEW=32, LMUL=m1, VLEN=4096, vstart=0, and RNE; NaNs, infinities, and fflags are not fully simulated.