What unit is used for VLOXEI64.V address offsets?
Indexed-load vs2 elements are unsigned byte offsets.
On RV64 V, load with ordered 64-bit byte offsets from vs2 plus x[rs1]; RV32 V does not support ei64.
VLOXEI64.V is a RISC-V V-extension ordered indexed vector load. ei64 sets index EEW=64, while SEW selects data width. V supports this form on RV64 but does not support 64-bit index EEW on RV32; the general index-truncation rule does not make this an RV32 V instruction. On RV64, each active element uses x[rs1]+vs2[i], with an unsigned byte offset rather than an element number. Ordered accesses obey RVWMO in element order; with vm=0, elements disabled by v0.t do not access memory.
Decode the 64-bit indexed load, then compute each element address as x[rs1] + vs2[i].
V does not support index EEW=64 on RV32; this animation fixes RV64 and offers no RV32 execution path. The generic low-XLEN rule for wider indices does not override this support limit.
Teaching context: XLEN=64, VLEN=4096, SEW=32, LMUL=m1, VLMAX=128, index EMUL=2, 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; ordered accesses obey RVWMO in 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.
VLOXEI64.V uses vs2 as byte offsets, not element numbers; the ordered form is for cases where observable access order matters.
Syntax: vloxei64.v vd, (rs1), vs2[, v0.t]; omitted v0.t gives vm=1 and included v0.t gives vm=0. vd is a vector group, rs1 an integer base, with base 0 for rs1=x0.
ei64 fixes index EEW=64; data EEW=SEW and EMUL=LMUL, while index EMUL=(64/SEW)×LMUL. The index width must be supported, EMUL in 1/8..8, and group starts legal; different-EEW overlap must also satisfy low/high-end restrictions.
Address is x[rs1] plus the vs2[i] byte offset: the general rule zero-extends narrower indices or takes low XLEN bits of wider ones. V does not support index EEW=64 on RV32; this ei64 page uses RV64. Ordered accesses obey RVWMO in element order, without cache or cycle guarantees.
Require enabled V/VS and valid vtype. Only elements with vstart≤i<vl and enabled masks access memory; masked vd cannot overlap v0. Prestart stays unchanged, inactive/tail follow vma/vta, and legal different-EEW overlap forces ma/ta. VL=0 or vstart≥vl updates no destination; normal completion resets vstart=0 and leaves vl unchanged.
Assume RV64 V; enabled V/VS, supported data/index widths, VLEN≥128, x10=0x8000, x11=4, and successful memory accesses; vsetvli sets vl=4, vstart=0, ta/ma. e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; memory values=[10,20,30,40] → v1=[10,20,30,40]. Omitting v0.t makes this unmasked. Agnostic elements may retain old values or become all ones; tails are not guaranteed zero.
Assume RV64 V; enabled V/VS, supported data/index widths, VLEN≥128, x10=0x8000, x11=4, and successful memory accesses; vsetvli sets vl=4, vstart=0, ta/ma. e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; memory values=[10,20,30,40] → v1=[10,20,30,40]. Omitting v0.t makes this unmasked. Agnostic elements may retain old values or become all ones; tails are not guaranteed zero.
Assume RV64 V; enabled V/VS, supported data/index widths, VLEN≥128, x10=0x8000, x11=4, and successful memory accesses; vsetvli sets vl=4, vstart=0, ta/ma. e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; memory values=[10,20,30,40] → v1=[10,20,30,40]. Omitting v0.t makes this unmasked. Agnostic elements may retain old values or become all ones; tails are not guaranteed zero.
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.
It is not supported by standard V. With XLEN=32, V does not support index EEW=64; this page’s animation fixes RV64.