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

RISC-V VWSUBU.VV 指令详解

指令手册R-type

VWSUBU.VV 执行无符号拓宽减法。

指令语法

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

指令行为说明

vwsubu.vv 是 V 扩展无符号拓宽减法指令。两个 SEW 源操作数先拓宽到 2*SEW 后相减。结果写入 2*SEW 宽 vd。

快速理解与检索要点

vwsubu.vv 是 V 扩展向量指令,活动元素由 vl、vtype、vstart 与可选 v0.t 掩码共同决定;先拓宽源操作数,再在 2*SEW 宽度上相减。

官方语法为 `vwsubu.vv vd, vs2, vs1, vm`;省略掩码时按未掩码形式执行,写 `, v0.t` 时只更新掩码选中的活动元素。
尾部元素和掩码关闭元素按当前 vtype 的 tail/mask policy 处理,不应从助记符推断为固定清零。
目标是宽结果,寄存器组大小与普通 vsub 不同。

常见使用场景

位操作与掩码

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

向量运算

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

循环与迭代

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

使用前检查清单

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

容易混淆 / 常见误区

非 .w 形式会先拓宽两个 SEW 源操作数。
结果是 2*SEW 宽整数减法,不使用 vxrm,也不设置 vxsat。
目标寄存器组更宽,需满足 V 扩展 EMUL 与重叠约束。

常见问题

vwsubu.vv 的元素个数由什么决定?

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

vwsubu.vv 会固定处理整个向量寄存器吗?

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