首页/指令库/VRGATHEREI16-VV
VRGATHEREI16.VV

RISC-V VRGATHEREI16.VV 指令详解

指令手册R-type

使用 16 位索引元素从源向量收集数据。

指令语法

vrgatherei16.vv vd, vs2, vs1, vm
操作数说明
目标寄存器 rd:存放运算结果的通用寄存器。
源寄存器 rs1:第一个操作数寄存器。
源寄存器 rs2:第二个操作数寄存器。
V向量重排/索引排列操作

指令行为说明

VRGATHEREI16.VV 使用 vs1 提供的索引从 vs2 选择元素写入 vd;索引超出 VLMAX 时结果元素为零。

快速理解与检索要点

VRGATHEREI16.VV 解决“按索引重排向量元素”的问题,源数据来自 vs2。

索引值选择 vs2 中的元素;不是内存地址。
索引超出 VLMAX 时目标元素写零。
VRGATHEREI16.VV 的索引元素宽度固定为 16 位,可在较小索引宽度下访问较大数据 SEW。

常见使用场景

大数据查表

结合 «vrgatherei16.vv v8, v12, v4, v0.t» 等实际代码理解该场景。

稀疏数据访问

结合 «vrgatherei16.vv v8, v12, v4, v0.t» 等实际代码理解该场景。

使用前检查清单

语法检查
  • 确认当前指令格式为 R-type。
  • 确认操作数排列顺序与示例一致。
语义检查
  • 确认目标寄存器用途和调用约定兼容。
  • 确认该指令不是伪指令展开后的底层形式。

容易混淆 / 常见误区

索引固定16位EEW,与数据SEW独立
索引越界返回0

常见问题

VRGATHEREI16.VV 的索引是字节偏移吗?

不是。VRGATHER 的索引选择源向量元素;字节偏移属于 indexed load/store 指令。