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

RISC-V VSMUL.VX 指令详解

指令手册R-type

有符号定点分数乘法,按 vxrm 舍入并饱和。

指令语法

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

指令行为说明

VSMUL.VX 计算有符号 SEW 元素乘积,按 SEW-1 位缩放并使用 vxrm 舍入,然后饱和为 SEW 结果;饱和时设置 vxsat。

快速理解与检索要点

VSMUL.VX 面向定点 Q 格式一类的分数乘法,而不是普通整数乘法低位截断。

乘积按 SEW-1 位缩放并由 vxrm 控制舍入。
结果超出可表示范围时饱和并设置 vxsat。
需要普通整数乘法时使用 VMUL/VMULH 系列。

常见使用场景

位操作与掩码

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

向量运算

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

循环与迭代

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

使用前检查清单

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

容易混淆 / 常见误区

这是小数乘法:乘积先右移 SEW-1 位,不是简单截断。
舍入由 vxrm 控制;饱和会设置 vxsat。

常见问题

VSMUL.VX 是否等同于 VMUL 后右移?

不等同。VSMUL 定义了定点舍入和饱和行为,并会在饱和时设置 vxsat。