首页/指令库/VWREDSUM-VS
VWREDSUM.VS

RISC-V VWREDSUM.VS 指令详解

指令手册R-type

VWREDSUM.VS 执行有符号拓宽求和归约,结果写入 vd[0]。

指令语法

vwredsum.vs vd, vs2, vs1, vm
操作数说明
目标寄存器 rd:存放运算结果的通用寄存器。
源寄存器 rs1:第一个操作数寄存器。
源寄存器 rs2:第二个操作数寄存器。
V向量运算

指令行为说明

vwredsum.vs 将 vs2 的活动元素按有符号方式拓宽后与 vs1[0] 初值做求和归约,归约结果写入 vd[0]。

快速理解与检索要点

vwredsum.vs 是 V 扩展向量指令,活动元素由 vl、vtype、vstart 与可选 v0.t 掩码共同决定;活动 vs2 元素拓宽后与 vs1[0] 初值归约求和,结果只在 vd[0]。

官方语法为 `vwredsum.vs vd, vs2, vs1, vm`;省略掩码时按未掩码形式执行,写 `, v0.t` 时只更新掩码选中的活动元素。
尾部元素和掩码关闭元素按当前 vtype 的 tail/mask policy 处理,不应从助记符推断为固定清零。
归约指令不是逐元素加法,vd[0] 以外的元素没有同等结果语义。

常见使用场景

求向量和

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

点积累加

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

统计聚合

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

使用前检查清单

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

容易混淆 / 常见误区

只有 vd[0] 保存归约结果;不要把整个 vd 组当作逐元素输出。
整数求和归约按 V 扩展归约规则执行,中间求和树顺序不应被软件依赖。
掩码关闭的元素不参与归约,尾部元素按策略处理。

常见问题

vwredsum.vs 的元素个数由什么决定?

由当前 vl 和 vtype 决定,同时还受 vstart、LMUL、SEW、掩码和尾部策略影响。

vwredsum.vs 会固定处理整个向量寄存器吗?

不会。V 扩展指令按活动元素执行,寄存器组大小和未活动元素行为由 vtype 与策略位决定。