首页/指令库/VRGATHER-VX
VRGATHER.VX

RISC-V VRGATHER.VX 指令详解

指令手册R-type

按索引从源向量收集元素。

指令语法

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

指令行为说明

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

快速理解与检索要点

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

索引值选择 vs2 中的元素;不是内存地址。
索引超出 VLMAX 时目标元素写零。
VI/VX/VV 形式分别从立即数、标量寄存器或向量元素取得索引。

常见使用场景

查表

结合 «vrgather.vx v8, v12, x5, v0.t» 等实际代码理解该场景。

数据重排

结合 «vrgather.vx v8, v12, x5, v0.t» 等实际代码理解该场景。

压缩/解压缩

结合 «vrgather.vx v8, v12, x5, v0.t» 等实际代码理解该场景。

使用前检查清单

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

容易混淆 / 常见误区

索引越界(>=VLMAX)返回0,不触发异常
目标不能与源重叠
SEW=8时vrgather.vv仅0-255;vrgatherei16可索引64K

常见问题

VRGATHER.VX 的索引是字节偏移吗?

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