What unit is used for VLUXEI8.V address offsets?
Indexed-load vs2 elements are unsigned byte offsets.
Use x[rs1] plus 8-bit unsigned byte offsets from vs2 for unordered indexed loads.
VLUXEI8.V is an RISC-V V-extension unordered indexed vector load instruction. Each active element forms its address as x[rs1] + zero_extend(vs2[i]); ei8 is the index EEW, so the index is an unsigned byte offset, not an element number. The unordered form does not guarantee observation in element-number order. With vm=0, elements disabled by v0.t do not access memory.
Decode the 8-bit indexed load, then compute each element address as x[rs1] + zero_extend(vs2[i]).
Teaching context: XLEN=64, VLEN=4096, SEW=32, LMUL=m1, VLMAX=128, index EMUL=0.25, valid vtype, enabled VS, vstart=0, and ta/ma. All selected accesses are assumed successful; traps are not modeled. Unaligned accesses apply only where the environment supports them. rs1=x0 fixes the base at 0. The memory elements input gives the value observed by each active read, allowing memory to change between accesses; it is not a static byte-memory image. Per-element steps do not represent processor cycles or actual access order; unordered indexed accesses do not guarantee element order. Inactive/tail “-” means the result is not shown and may retain the old value or become all ones. VL=0 leaves the destination unchanged; 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.
VLUXEI8.V uses vs2 as byte offsets, not element numbers; the unordered form must not be used when element access order is required.
32-bit LOAD-FP: opcode=0000111, nf=000, mew=0, mop=01, width=000. vd is the data destination group, rs1 the integer base, and vs2 unsigned byte offsets, without implicit scaling.
Data EEW=SEW, EMUL=LMUL; index EEW=8, EMUL=(EEW/SEW)×LMUL, in 1/8..8 with legal group starts. Zero-extend indices to XLEN before adding x[rs1]. rs1=x0 gives base 0.
Omitting v0.t gives vm=1; including it gives vm=0. Masked vd cannot overlap v0; one register cannot be read as both an EEW=1 mask and different-EEW data. Different-EEW destination/source overlap must satisfy the low/high-end rules; legal overlap forces ma/ta.
Require V 1.0, enabled VS, valid vtype, and supported widths. Prestart stays unchanged; body is vstart≤i<vl. VL=0 or vstart≥vl updates no destination, including tails; normal completion resets vstart=0 and leaves vl unchanged.
Only active elements access memory, without element-order guarantees. Misalignment may succeed or raise an address-misaligned exception; access permissions still apply. Inactive/tail elements follow vma/vta and may retain old values or become all ones.
Assume RV32/RV64 V; enabled VS, valid vtype, VLEN≥128, and supported widths; vsetvli gives vl=4, vstart=0, ta/ma, unmasked. x10=0x8000, x11=4; e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; observed memory=[10,20,30,40] → v1=[10,20,30,40]. All accesses succeed; the address list is not an access-order guarantee. Tails are not guaranteed zero; normal completion resets vstart=0.
Assume RV32/RV64 V; enabled VS, valid vtype, VLEN≥128, and supported widths; vsetvli gives vl=4, vstart=0, ta/ma, unmasked. x10=0x8000, x11=4; e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; observed memory=[10,20,30,40] → v1=[10,20,30,40]. All accesses succeed; the address list is not an access-order guarantee. Tails are not guaranteed zero; normal completion resets vstart=0.
Indexed-load vs2 elements are unsigned byte offsets.
With vm=0, v0 selects active elements; with vm=1, all body elements participate. Inactive and tail elements follow the current policies.