How is VSM.V different from VSE8.V?
VSM.V stores ceil(vl/8) packed mask bytes; VSE8.V stores 8-bit data elements.
Store ceil(vl/8) complete source-register bytes starting at x[rs1].
VSM.V is an unmasked unit-stride mask store with EEW=8 and EMUL=1. Source bit i maps to bit i mod 8 of byte floor(i/8). Source bits at indexes ≥vl in the final byte are also stored, without automatic zeroing.
Decode the packed mask store, then compute each element address as x[rs1] + floor(i/8).
Teaching context: V 1.0, enabled VS, valid vtype, VLEN=4096, SEW=8, LMUL=m1, vstart=0, no access faults. EEW=8, EMUL=1, vm=1; rs1=x0 fixes the base at 0. VL=0 makes no access; otherwise store all ceil(VL/8) bytes, including all source bits in the last byte. Per-bit stages explain mapping, not access order or processor cycles.
The animation starts from the 32-bit vector memory encoding and shows the official bit fields: nf, mew, mop, vm, rs2/vs2 or lumop/sumop, width, register fields, and opcode.
With VL=9 and vstart=0, store 2 complete bytes: source-register bits 0..15. The source register is unchanged.
vs3 is one source vector register (v0–v31); rs1 is an integer base register, with x0 supplying address 0.
32-bit STORE-FP: opcode=0100111, nf=000, mew=0, mop=00, vm=1, sumop=01011, width=000; vs3 is bits11:7 and rs1 is bits19:15. No v0.t operand.
EEW=8, EMUL=1, evl=ceil(vl/8). Store complete source bytes starting at byte vstart. Source bit i maps to bit i mod 8 at x[rs1]+floor(i/8); final-byte source bits with i≥vl are also stored.
vstart counts bytes; vstart≥evl (including vl=0) makes no access. Unit stride does not guarantee byte access order; accesses may trap. Examples assume vstart=0 and writable memory; the source register stays unchanged.
Require V 1.0, enabled vector state and valid supported vtype/SEW; normal completion resets vstart=0. Animation stages are teaching steps, not processor cycles.
Assume enabled V/VS, valid supported m1, VLEN=4096, XLEN=64, vstart=0 and initialized sources with successful memory writes. VL=9, v0 bits[0..15]=1000000000000001, a0=0x8000 → [0x8000]=0x01, [0x8001]=0x80. The bit string is in increasing index order; the complete final byte includes source bits beyond VL.
Assume enabled V/VS, valid supported m1, VLEN=4096, XLEN=64, vstart=0 and initialized sources with successful memory writes. VL=9, v0 bits[0..15]=1000000000000001, a0=0x8000 → [0x8000]=0x01, [0x8001]=0x80. The bit string is in increasing index order; the complete final byte includes source bits beyond VL.
Assume enabled V/VS, valid supported m1, VLEN=4096, XLEN=64, vstart=0 and initialized sources with successful memory writes. VL=9, v0 bits[0..15]=1000000000000001, a0=0x8000 → [0x8000]=0x01, [0x8001]=0x80. The bit string is in increasing index order; the complete final byte includes source bits beyond VL.
VSM.V stores ceil(vl/8) packed mask bytes; VSE8.V stores 8-bit data elements.
No. vs3 may name any vector register v0–v31.