VROL.VV 如何使用掩码?
可选汇编操作数是 v0.t:省略时 vm=1,加入时 vm=0。掩码形式的 vd 不能与 v0 重叠。
向量循环左移:vs2[i]循环左移vs1[i]位的值
语法 vrol.vv vd, vs2, vs1[, v0.t];向量寄存器选择 v0–v31。省略 v0.t 为 vm=1,加入为 vm=0。没有立即数。
32 位 OP-V:funct6=010101,vm[25],vs2[24:20],vs1[19:15],funct3=000,vd[11:7],opcode=1010111。
Zvbb 或 Zvkb 依赖 Zve32x,支持 SEW=8/16/32,64 另需 Zve64x。每个活动 vs2 元素按对应 vs1 元素的低 log2(SEW) 位循环左移,结果仍为 SEW 位。
启用向量状态并使用合法受支持的 vtype;同宽源/目的可重叠,读取原始源值,LMUL>1 的组须对齐。vm=0 时 vd 不得与 v0 重叠,v0 不能同时供给 SEW 数据与 EEW=1 掩码。
仅处理 body 内活动元素,prestart 保持,inactive/tail 遵守 vma/vta。vstart≥vl(含 vl=0)不更新任何目标元素;成功执行清零 vstart。实现可拒绝不支持的非零 vstart。
vrol.vv 是 Zvbb 或 Zvkb 的向量循环左移指令。每个元素 vs2[i] 循环左移 vs1[i] mod SEW 位。循环移位意味着移出的位从另一端重新进入,并按当前合法的 SEW 配置执行。
此有界模型只展示 lane 0 的 ISA 可见状态;不表示流水线、密码协议或未指定的非活跃/尾部值。
执行环境:启用本页扩展与向量状态,合法支持的 vtype,LMUL=1、VLEN≥64×SEW,仅展开 lane 0;vl=32/64 不复制 lane 0 到其他元素。SEW=64 要求 Zve64x。非零 vstart 假设实现支持,否则可产生非法指令异常。
funct6=010101, funct3=000, Zvbb/Zvkb
按 vs1 对应元素的低 log2(SEW) 位循环左移 vs2 的活动元素;结果仍为 SEW 位。
语法 vrol.vv vd, vs2, vs1[, v0.t];向量寄存器选择 v0–v31。省略 v0.t 为 vm=1,加入为 vm=0。没有立即数。
32 位 OP-V:funct6=010101,vm[25],vs2[24:20],vs1[19:15],funct3=000,vd[11:7],opcode=1010111。
Zvbb 或 Zvkb 依赖 Zve32x,支持 SEW=8/16/32,64 另需 Zve64x。每个活动 vs2 元素按对应 vs1 元素的低 log2(SEW) 位循环左移,结果仍为 SEW 位。
启用向量状态并使用合法受支持的 vtype;同宽源/目的可重叠,读取原始源值,LMUL>1 的组须对齐。vm=0 时 vd 不得与 v0 重叠,v0 不能同时供给 SEW 数据与 EEW=1 掩码。
仅处理 body 内活动元素,prestart 保持,inactive/tail 遵守 vma/vta。vstart≥vl(含 vl=0)不更新任何目标元素;成功执行清零 vstart。实现可拒绝不支持的非零 vstart。
启用本页扩展与向量状态、合法受支持 vtype、LMUL=1、VLEN=256、vstart=0、无掩码;SEW=32, vl=1, v8[0]=0x12345678, v12[0]=4: v4[0]=0x23456781。示例只给出活动组/元素,尾部按 tu 保持。成功后 vstart=0。
启用本页扩展与向量状态、合法受支持 vtype、LMUL=1、VLEN=256、vstart=0、无掩码;SEW=32, vl=1, v8[0]=0x12345678, v12[0]=4: v4[0]=0x23456781。示例只给出活动组/元素,尾部按 tu 保持。成功后 vstart=0。
可选汇编操作数是 v0.t:省略时 vm=1,加入时 vm=0。掩码形式的 vd 不能与 v0 重叠。
由合法且受支持的 vtype.SEW 决定:Zve32x 下为 8、16、32 位;64 位还需要 Zve64x。