vluxei16.vmnemonicvluxei16.v:索引加载
vluxei16 是 RISC-V V 1.0 的索引加载指令。不同操作数后缀属于同一助记符并集中列在本页。
vluxei16.v 02vd, (rs1), vs2, vmvluxei16.vmnemonicvluxei16.v:索引加载
vd, (rs1), vs2, vmdestination该形式的操作数顺序;其他形式见下表。
li a0, 10
vsetvli t0, a0, e32, m4, tu, mu # VLEN=128
vluxei16.v v0, (a1), v8[511:0][511:0]| 语法 | 说明 |
|---|---|
vluxei16.v vd, (rs1), vs2, vm | RISC-V V 1.0 规范形式 |
元素 0 位于寄存器组最低 SEW 位;活动 body 元素按 memory 类语义处理。VLMAX = LMUL × VLEN / SEW,实际写入范围由 vstart、vl、执行掩码和尾部策略共同决定。
# 元素访问之间没有顺序保证;索引按 16 位无符号偏移解释
for i = vstart .. vl - 1:
if vm == 0 and v0.mask[i] == 0: continue
field = 0
address = x[rs1] + zero_extend(vs2[i]) + field * (SEW / 8)
vd_field[field][i] = MEM_SEW[address]
apply_load_mask_and_tail_policy(vd_fields, vl, vma, vta)
vstart = 0加载形式写目标向量寄存器,存储形式写内存;基址、步长、索引和来源寄存器保持不变。正常完成后 vstart=0,异常时可按规范从 vstart 重启。
V 1.0 不统一要求自然对齐;地址仍须满足执行环境对相应元素访问的支持并可访问完整元素。
vsetvli t0, a0, e16, m1, tu, mu
vluxei16.v v0, (a1), v8