Does VSE16.V automatically set vl?
No. vl/vtype are set by an earlier vsetvli, vsetivli, or vsetvl; vector loads and stores execute under the current configuration.
Store active 16-bit elements from vs3 to contiguous memory starting at x[rs1].
VSE16.V stores active 16-bit vs3 elements at x[rs1]+i×2 bytes. Only mask-enabled body elements vstart≤i<vl access memory; omitting v0.t is unmasked.
Decode the 16-bit unit-stride store, then compute each element address as x[rs1] + i * 2.
Teaching configuration: V 1.0, enabled VS, valid vtype; VLEN=4096, SEW=EEW=16, LMUL=EMUL=m1, vstart=0. Bases are naturally aligned; rs1=x0 supplies zero. Active writes are assumed successful; traps are not modeled. VL=0 makes no memory access; disabled elements and tails do not write memory. Per-element stages are not actual access order or processor cycles; normal completion resets vstart=0.
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.
Active element i writes vs3[i] to x[rs1]+i×2 bytes. vm=0 uses v0.t; vm=1 is unmasked. Disabled elements and tails do not write memory.
vs3 is the EEW=16 source group; rs1 selects the integer base and x0 supplies zero. Syntax: vse16.v vs3, (rs1)[, v0.t].
Omit v0.t for vm=1; include it for vm=0. EEW is encoded in the instruction; EMUL=(EEW/SEW)×LMUL.
Active elements write to x[rs1]+i×2 bytes. Disabled, prestart and tail elements make no writes. Element accesses are unordered; lane animation is not hardware access order.
Require V 1.0, enabled vector state, valid vtype/register groups and writable memory. Body is vstart≤i<vl. vl=0 makes no access; the store does not update vl or vtype.
Assume enabled V/VS, valid m1, VLEN=4096, supported widths, vl=4, vstart=0 and initialized sources, and successful writes to selected writable memory. SEW=EEW=16, x10=0x8000, v8=[1,2,3,4], v0.mask[0..3]=1010 → [0x8000]=1, [0x8004]=3. Only lanes 0 and 2 write memory; other addresses are unchanged, without an access-order guarantee. vl=0 updates no destination.
Assume enabled V/VS, valid m1, VLEN=4096, supported widths, vl=4, vstart=0 and initialized sources, and successful writes to selected writable memory. SEW=EEW=16, x10=0x8000, v8=[1,2,3,4], v0.mask[0..3]=1010 → [0x8000]=1, [0x8004]=3. Only lanes 0 and 2 write memory; other addresses are unchanged, without an access-order guarantee. vl=0 updates no destination.
No. vl/vtype are set by an earlier vsetvli, vsetivli, or vsetvl; vector loads and stores execute under the current configuration.
Active element i uses x[rs1] + i * 2 bytes. This is contiguous memory access, not arbitrary gather/scatter.
No. With vm=0, a body element whose v0.t bit is 0 does not perform that element's store memory access.