VDIVU.VV 除零会产生异常吗?
不会。官方 V 扩展为除零定义了确定结果:商写回全 1 位模式,指令本身不产生除零 trap。
向量-向量无符号整数除法,把逐元素商写入 vd;除零不触发异常。
VDIVU.VV 对活动元素执行 SEW 位无符号整数除法:vs2 是被除数,vs1 的同 lane 元素是除数,商向零舍入并写入 vd。除零返回全 1 位模式,不产生除零 trap。无符号除法不会溢出。
从 OP-V 编码字段开始,展示 VDIVU 如何逐元素计算无符号商及除零结果;无符号除法不会溢出。
教学模型固定 LMUL=m1、vstart=0,只展示所选 VL 的 body 元素。固定 VLEN=4096,VLMAX=4096/16=256,只演示支持所选 SEW 的实现;同名向量源必须具有相同元素。普通掩码形式的 inactive 与 tail 元素按 vtype.vma/vta 处理,不在结果行中伪造确定值;VADC/VMADC/VSBC/VMSBC 则对所有 body 元素执行,v0 位仅作 carry/borrow-in。
vdivu.vv 使用 OP-V 编码。动画把固定字段、寄存器字段、vm 和 vs1 字段放在同一条编码带中。
动画只展示官方 V 扩展定义的 ISA 可见关系:OP-V 字段解析、活动元素读取、SEW 宽度整数无符号除法、mask 控制和 vd 写回;不模拟流水线、缓存或执行时延。
VDIVU.VV 不产生除零异常。它在当前 vl 的活动元素上读取 vs2 作为被除数、读取vs1 同 lane 元素作为除数,写回 无符号商;vm=0 时只执行 v0.t 为 1 的 body 元素。
vd 与 vs2 是 SEW 位向量寄存器组;同 EEW 源/目标可重叠,同名源读取相同初值。
vs1 是同 lane 的 SEW 位向量除数,vs2 是被除数;没有立即数或反向标量除向量形式。
商向零舍入;除零返回全 1 位模式,不产生除零 trap。有符号最小负数/-1 返回被除数;无符号除法不会溢出。
要求 V、向量状态已启用且 vtype 受支持;活动元素满足 vstart≤i<vl 且(vm=1 或 v0[i]=1),VL=0 时目标完全不更新。省略 v0.t 表示 vm=1。inactive/tail 遵循 vma/vta;masked vd 不得覆盖 v0,v0 不能同时以 EEW=1 和 SEW 作为源读取。
假定 V/向量状态已启用、vstart=0、e32,m1 可用、VLMAX≥4 且 a0=4;示例未掩码,全部四个 body 元素执行。v2=[20,21,22,23],v3=[3,4,5,6],得到 v1=[6,5,4,3];商向零舍入。尾元素按 ta 处理,不假定清零。
假定 V/向量状态已启用、vstart=0、e32,m1 可用、VLMAX≥4 且 a0=4;示例未掩码,全部四个 body 元素执行。v2=[20,21,22,23],v3=[3,4,5,6],得到 v1=[6,5,4,3];商向零舍入。尾元素按 ta 处理,不假定清零。
不会。官方 V 扩展为除零定义了确定结果:商写回全 1 位模式,指令本身不产生除零 trap。
VDIVU.VV 写回商;配套的 VREMU 形式写回余数。除零时,商为全 1 位模式,余数为被除数。
商向零舍入。例如 SEW=32 时,21/4 得到 5。普通掩码形式仅对活动元素计算。