Does ei16 select the stored data width?
No. Indexes are 16-bit unsigned byte offsets; the stored data width comes from current SEW.
Use x[rs1] plus 16-bit unsigned byte offsets from vs2 for unordered indexed stores from active vs3 elements.
VSUXEI16.V is a RISC-V V-extension unordered indexed vector store instruction. Each active element forms its address as x[rs1] + zero_extend(vs2[i]) and stores the current-SEW data from vs3[i]; ei16 specifies only the index EEW. The unordered form does not guarantee observation in element-number order. With vm=0, elements disabled by v0.t do not write memory.
Decode the 16-bit indexed store, then compute each element address as x[rs1] + zero_extend(vs2[i]).
Teaching context: V 1.0, enabled vector state, valid supported vtype/SEW/index EEW; fix VLEN=4096, LMUL=m1, vstart=0, VLMAX=4096/32, index EMUL=0.5. Index groups align and stay within v31; a register cannot supply different source EEWs, and v0.t excludes v0 data sources. Equal-EEW vs3/vs2 sharing a register require equal elements. x0 gives base zero. Assume all active accesses succeed; misaligned accesses require environment support. The address display range 0..0xffffffff is a teaching limit, not an ISA limit. Rows show per-element store events, not a final byte-memory image; later overlapping stores may overwrite earlier data. Unordered stores guarantee neither element access order nor the final value at overlapping addresses; stages are not actual access order. Stages are not processor cycles. Inactive/tail elements make no access; VL=0 makes no access. Sources remain unchanged; success 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.
VSUXEI16.V is an RVV unordered indexed store; memory writes occur only for active elements not masked off.
vs3 supplies data (EEW=SEW, EMUL=LMUL); vs2 supplies 16-bit unsigned byte offsets with index EMUL=(16/SEW)*LMUL in 1/8..8. Group starts must align; a register cannot supply different source EEWs.
32-bit STORE-FP: opcode=0100111, nf=000, mew=0, mop=01, width=101; vm at bit25, vs2 at bits24:20, rs1 at bits19:15, vs3 at bits11:7.
Active addresses are x[rs1]+zero_extend(vs2[i]), without data-width scaling; x0 supplies base zero. Unordered accesses guarantee neither element order nor final values at duplicate/overlapping addresses. Sources stay unchanged; misalignment may succeed or fault, and other active accesses may trap.
Require RV32/RV64 V 1.0, enabled vector state, vill=0 and supported vtype/SEW/index EEW. v0.t means vm=0; omission means vm=1. Only mask-enabled vstart<=i<vl elements access memory; inactive/tail make no access. vstart>=vl (including vl=0) makes no access; v0 cannot supply both EEW=1 mask and data. Success resets vstart=0.
Assume enabled V/VS, valid m1,tu,mu, VLEN=4096, vl=4, vstart=0, v0.mask[0..3]=1101; SEW=32, x10=0x8000, v8=[10,20,30,40], vs2=v4 (EEW=16)=[12,0,8,4]. lane0: [0x800c]=10; lane1: [0x8000]=20; lane3: [0x8004]=40. Assume writable addresses and successful accesses. Lane2 makes no access; events do not represent actual access order. Sources stay unchanged. Success resets vstart=0.
Assume enabled V/VS, valid m1,tu,mu, VLEN=4096, vl=4, vstart=0, v0.mask[0..3]=1101; SEW=32, x10=0x8000, v8=[10,20,30,40], vs2=v4 (EEW=16)=[12,0,8,4]. lane0: [0x800c]=10; lane1: [0x8000]=20; lane3: [0x8004]=40. Assume writable addresses and successful accesses. Lane2 makes no access; events do not represent actual access order. Sources stay unchanged. Success resets vstart=0.
Assume enabled V/VS, valid m1,tu,mu, VLEN=4096, vl=4, vstart=0, v0.mask[0..3]=1101; SEW=32, x10=0x8000, v8=[10,20,30,40], vs2=v4 (EEW=16)=[12,0,8,4]. lane0: [0x800c]=10; lane1: [0x8000]=20; lane3: [0x8004]=40. Assume writable addresses and successful accesses. Lane2 makes no access; events do not represent actual access order. Sources stay unchanged. Success resets vstart=0.
No. Indexes are 16-bit unsigned byte offsets; the stored data width comes from current SEW.
No. Unordered indexed stores do not guarantee element access order; the highest-numbered element is not guaranteed to write last.