它等价于先加再简单右移吗?
不完全等价。右移前会按 vxrm 的 rnu/rne/rdn/rod 模式舍入。
向量有符号平均加:vd[i] = roundoff_signed(vs2[i] + vs1[i], 1)
vaadd.vv 执行向量有符号平均加。中间结果右移 1 位并按 vxrm 舍入,然后写回 SEW 位结果。
VAADD.VV 是 RVV 定点平均加法:先以无限精度相加,再右移 1 位并按 vxrm 舍入,最后截断为 SEW 位结果。
结合 «vaadd.vv vd, vs2, vs1» 等实际代码理解该场景。
结合 «vaadd.vv vd, vs2, vs1» 等实际代码理解该场景。
结合 «vaadd.vv vd, vs2, vs1» 等实际代码理解该场景。
不完全等价。右移前会按 vxrm 的 rnu/rne/rdn/rod 模式舍入。
不会因结果溢出设置;平均加法结果按规范不会溢出。