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

RISC-V VWADDU.VV 指令详解

指令手册R-type

无符号宽化加法,结果为 2*SEW。

指令语法

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

指令行为说明

VWADDU.VV 将输入扩展后相加,生成 2*SEW 宽结果。普通形式把两个 SEW 宽操作数宽化后相加。

快速理解与检索要点

VWADDU.VV 用于在更宽目标中保存加法结果,避免单宽加法的 SEW 回绕。

目标元素宽度为 2*SEW。
普通形式先把两个单宽源扩展到 2*SEW 再相加。
无符号形式执行零扩展。

常见使用场景

位操作与掩码

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

向量运算

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

循环与迭代

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

使用前检查清单

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

容易混淆 / 常见误区

目的元素宽度是 2*SEW,目的寄存器组 EMUL 也随之加宽。
无符号形式对输入零扩展。
这是宽化加法,不是饱和加法;不会设置 vxsat。

常见问题

VWADDU.VV 是累加指令吗?

不是。它生成宽化加法结果;宽累加语义应查看 VWADD.W* 或专用乘加/归约指令的具体规则。