首页/指令库/VMORN-MM
VMORN.MM

RISC-V VMORN.MM 指令详解

指令手册V-type

向量掩码 OR-NOT:vd.mask[i] = vs2.mask[i] | ~vs1.mask[i]

指令语法

vmorn.mm vd, vs2, vs1
操作数说明
本指令为 V-type 格式,请根据汇编语法确认各操作数位置。
V向量运算掩码逻辑

指令行为说明

VMORN.MM 按掩码位计算 vd.mask[i] = vs2.mask[i] | ~vs1.mask[i]。注意取反对象是第三个源操作数 vs1;该指令总是 unmasked。

快速理解与检索要点

VMORN.MM 是 RVV 向量掩码或非 指令,按单比特 mask 元素计算,汇编操作数顺序为 vd, vs2, vs1;该类 mask logical 指令总是 unmasked。

操作不依赖 SEW/LMUL 的数据元素宽度;源和目的都是单个向量寄存器承载的 mask。
VMORN.MM 的布尔函数必须按 vs2 与 vs1 的顺序理解,ANDN/ORN 尤其不能把取反对象写反。

常见使用场景

掩码条件合成

结合 «vmorn.mm v1, v2, v3» 等实际代码理解该场景。

逻辑蕴含

结合 «vmorn.mm v1, v2, v3» 等实际代码理解该场景。

使用前检查清单

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

容易混淆 / 常见误区

汇编操作数顺序是 vd, vs2, vs1;ANDN/ORN 的取反对象是 vs1。
这些 mask logical 指令总是 unmasked,vm=0 编码保留。
它们操作 mask 位,不是普通向量数据元素;不要与 vand/vor/vxor 混淆。

常见问题

它和 vand.vv/vor.vv 一样吗?

不一样。mask logical 操作掩码位;vand/vor 操作普通向量数据元素。

是否受 v0 掩码控制?

不受。向量 mask logical 指令总是 unmasked,尾部按 tail-agnostic 更新。