Where are the VREDMAXU.VS seed and result?
The seed is vs1[0]. With vl>0, only vd[0] in a single register receives the SEW result; the rest is tail governed by vta.
VREDMAXU.VS: with vl>0, reduce active vs2 elements and seed vs1[0] by unsigned maximum, writing the result to vd[0].
VREDMAXU.VS is a V 1.0 single-width integer unsigned maximum reduction. With vl>0 and vstart=0, always include vs1[0] and reduce active vs2 elements by maxu; write the SEW result to vd[0] in one register. Other destination elements are tail; vl=0 leaves vd unchanged.
Starts from OP-V encoding fields, then shows how VREDMAXU uses vs1[0] as the seed, reduces only active vs2 elements, and writes the SEW-width result to vd[0].
Require V 1.0, enabled vector state and valid supported vtype/SEW. Fix LMUL=m1, vstart=0, VLEN=4096 and VLMAX=4096/16=256. A nonzero vstart for a reduction raises an illegal-instruction exception, so it is not offered as an executable input. A reduction writes element 0 of one vd; the rest is tail governed by vta. vd may overlap sources or v0. With vs2=vs1, the seed must equal vs2[0]. When v0 supplies the EEW=1 mask it cannot also supply SEW data. VL=0 updates no destination elements. Only body is shown without definite inactive/tail values. Steps are teaching stages, not processor cycles.
vredmaxu.vs uses OP-V encoding. The animation places fixed fields, register fields, vm, and the vs1 field in one encoding strip.
This animation shows OP-V field decode, active-element reads, integer unsigned maximum reduction seeded by vs1[0], mask participation filtering, and vd[0] writeback. These are teaching stages; they do not model pipelines, caches, or timing.
VREDMAXU.VS: with vl>0, reduce active vs2 elements and seed vs1[0] by unsigned maximum, writing the result to vd[0].
Syntax: vredmaxu.vs vd, vs2, vs1[, v0.t]; omit v0.t for vm=1, include it for vm=0. 32-bit OP-V: opcode=1010111, funct3=010 (OPMVV), funct6=000110.
vs2 is a SEW/LMUL vector group; vs1[0] is a SEW seed and vd[0] is the SEW result. Each scalar occupies a single vector register regardless of LMUL.
With vl>0, always include vs1[0] and reduce only active vs2 elements; all-masked-off still writes the seed to vd[0]. The rest of vd is tail governed by vta: retain or agnostic. vl=0 leaves all of vd unchanged. Nonzero vstart raises an illegal-instruction exception.
vd may overlap sources and v0. Equal vs2/vs1 must read a consistent element 0 from the same register. v0 cannot supply both the EEW=1 mask and SEW data. Source-group starts align to EMUL, EMUL≤8.
Require V 1.0, enabled vector state and valid supported vtype/SEW. Successful execution resets vstart to 0. The animation uses its stated m1/vstart=0 assumptions; its steps are not processor cycles.
Assume enabled V/VS, valid m1, VLEN≥128, supported SEW, vl=4, vstart=0, v0.mask[0..3]=1111 and initialized sources. SEW=8, v4[0]=4, v12=[1,128,2,3] → v8[0]=128. Include the seed, then reduce all active source elements; other destination elements are tail governed by vta. vl=0 leaves the destination unchanged.
The seed is vs1[0]. With vl>0, only vd[0] in a single register receives the SEW result; the rest is tail governed by vta.
No. With vl>0 and every vs2 element masked off, write the seed to vd[0]. With vl=0, leave all of vd unchanged. Nonzero vstart raises an illegal-instruction exception.