VLM.V

RISC-V VLM.V 指令详解

指令手册R-type

从内存连续装入 ceil(vl/8) 字节,并把这些位作为目标向量掩码元素。

指令语法

vlm.v vd, (rs1)
操作数说明
目标寄存器 rd:存放运算结果的通用寄存器。
源寄存器 rs1:第一个操作数寄存器。
源寄存器 rs2:第二个操作数寄存器。
V向量加载掩码操作

指令行为说明

VLM.V 是 RISC-V V 扩展的向量掩码装载指令。它按字节连续读取保存紧凑掩码所需的数据量,即 ceil(vl/8) 字节,并将位映射到目标掩码寄存器。该指令用于恢复或传递 RVV 掩码值,而不是按 SEW 装载普通数据元素。

快速理解与检索要点

VLM.V 装入的是紧凑掩码位流,不是普通整数向量;内存访问量由 vl 的位数决定。

访问字节数为 ceil(vl/8),地址来自 x[rs1]。
掩码元素布局遵循 RVV 掩码寄存器布局,元素有效性由当前 vl 决定。
该指令是未掩码形式,没有额外的 v0 执行掩码;目标元素范围由指令定义和当前 vl 控制。

常见使用场景

掩码保存/恢复

结合 «vlm.v v0, (a0) # load full VLEN-bit mask» 等实际代码理解该场景。

上下文切换

结合 «vlm.v v0, (a0) # load full VLEN-bit mask» 等实际代码理解该场景。

使用前检查清单

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

容易混淆 / 常见误区

有效传输长度是 ceil(vl/8) 字节,不是 VLEN 字节。
目标作为掩码值处理,并采用 tail-agnostic 写入。

常见问题

VLM.V 如何处理掩码?

它没有普通 v0 执行掩码;若语法中出现 mask 操作数,该操作数是数据输入而不是额外执行掩码。