Is the seed written when no elements are active or vl=0?
With vl>0 and no active elements, copy vs1[0] unchanged to vd[0], without canonicalizing NaNs or raising exception flags. With vl=0, leave the destination unchanged.
When vl>0, reduce vs1[0] and active vs2 elements using floating-point maximum, writing the result to vd[0].
VFREDMAX.VS: Use maximumNumber; operation order does not change the final value or exception flags. The scalar seed always participates, even if every vector element is masked off; vl=0 leaves the destination unchanged. Other destination elements are tails governed by vta. V includes FP32/FP64 support and depends on F/D; SEW=16 arithmetic requires Zvfh.
Fixed SEW=32, LMUL=m1, VLEN=4096, vstart=0, frm=RNE, valid vtype, and enabled VS/FS. Inputs are represented as FP32; each addition rounds to FP32 under RNE. Nonfinite results and exception flags are outside the model. An empty element list explicitly means vl=0. The destination may overlap sources and v0.
OP-V encoding: funct6=000111, funct3=001, vm=0.
v0-v31
single-width source
scalar seed in element 0
finite FP32; RNE
finite FP32 values; empty = vl=0
one bit per value
hex: 1c861257
v4[0] = 4
When vl>0, reduce vs1[0] and active vs2 elements using floating-point maximum, writing the result to vd[0].
vs2 is a SEW-wide vector register group; the result is in vd[0], and other destination elements are tails governed by vta. vma does not control the scalar result. The destination may overlap sources and the v0 mask.
vs1[0] is the always-included SEW-wide scalar seed; vd[0] is the result in one vector register, independent of LMUL. Nonzero vstart raises illegal instruction.
Assembly vm denotes optional v0.t: omission means vm=1; v0.t means vm=0, selecting active vs2 elements. One source register cannot be read as both an EEW=1 mask and SEW-wide data.
vl=0 leaves the destination unchanged. With vl>0 and every element masked off, copy the seed unchanged, without canonicalizing NaNs or raising exception flags.
V 1.0 applies to RV32/RV64, includes FP32/FP64, and depends on F/D; SEW=16 arithmetic requires Zvfh. Require valid vtype, supported widths, enabled VS/FS, and valid frm; invalid frm use is reserved even at vl=0. vxrm does not control these FP operations.
Assume V/VS/FS enabled, valid vtype, frm=RNE, supported e32,m1, VLMAX≥4, and x10=4; after vsetvli, vl=4 and vstart=0. Inputs are binary32; f0, when used, is validly NaN-boxed at FLEN=64. The example is unmasked: v3[0]=0, v2=[1,2,3,4] → v1[0]=4. Tails follow ta without assumed zeroing.
Assume V/VS/FS enabled, valid vtype, frm=RNE, supported e32,m1, VLMAX≥4, and x10=4; after vsetvli, vl=4 and vstart=0. Inputs are binary32; f0, when used, is validly NaN-boxed at FLEN=64. The example is unmasked: v3[0]=0, v2=[1,2,3,4] → v1[0]=4. Tails follow ta without assumed zeroing.
With vl>0 and no active elements, copy vs1[0] unchanged to vd[0], without canonicalizing NaNs or raising exception flags. With vl=0, leave the destination unchanged.