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