VCPOP.V 是否总能带 v0.t 掩码?
可按语法使用 v0.t;省略时 vm=1。vm=0 时 v0 作为 EEW=1 掩码,普通数据源或目标不能同时重用 v0,否则编码保留。
向量比特计数:计算每个元素中被置位(1)的bit总数
vd、vs2 选择 v0–v31,元素 EEW=SEW、EMUL=LMUL。可选 v0.t 对应 vm=0;省略为 vm=1,没有立即数。
32 位 OP-V:funct6=010010,vm[25],vs2[24:20],01110[19:15](固定选择子,不是源寄存器),funct3=010,vd[11:7],opcode=1010111。
Zvbb 在 Zve32x 上支持 SEW=8/16/32,Zve64x 还提供 64。统计每个元素中值为 1 的位数,范围为 0..SEW,分别写入 vd[i],不是 vcpop.m 的掩码归约。
启用向量状态并使用合法、支持的 vtype;同宽源/目的可重叠,源值取自写回前,LMUL>1 的组须对齐。掩码目标不得与 v0 重叠;v0 不能同时作 SEW 数据源和 EEW=1 掩码。
处理 vstart≤i<vl 的掩码启用元素;前置元素保持,非活跃/尾部按 vma/vta 保持或写全 1。vstart≥vl(含 vl=0)不更新任何目标。成功结束清零 vstart;实现可拒绝不支持的非零 vstart。
vcpop.v 是 Zvbb 的向量置位位计数(popcount)指令。对每个元素计算所有位中被置为 1 的位总数(汉明重量)。Zve32x 支持 SEW=8/16/32,Zve64x 还支持 SEW=64。
此有界模型只展示 lane 0 的 ISA 可见状态;不表示流水线、密码协议或未指定的非活跃/尾部值。
执行环境:启用本页扩展与向量状态,合法支持的 vtype,LMUL=1、VLEN≥64×SEW,仅展开 lane 0;vl=32/64 不复制 lane 0 到其他元素。SEW=64 要求 Zve64x。非零 vstart 假设实现支持,否则可产生非法指令异常。
funct6=010010, funct3=010, Zvbb
vcpop.v 是 Zvbb 的向量置位位计数(popcount)指令。对每个元素计算所有位中被置为 1 的位总数(汉明重量)。Zve32x 支持 SEW=8/16/32,Zve64x 还支持 SEW=64。
vd、vs2 选择 v0–v31,元素 EEW=SEW、EMUL=LMUL。可选 v0.t 对应 vm=0;省略为 vm=1,没有立即数。
32 位 OP-V:funct6=010010,vm[25],vs2[24:20],01110[19:15](固定选择子,不是源寄存器),funct3=010,vd[11:7],opcode=1010111。
Zvbb 在 Zve32x 上支持 SEW=8/16/32,Zve64x 还提供 64。统计每个元素中值为 1 的位数,范围为 0..SEW,分别写入 vd[i],不是 vcpop.m 的掩码归约。
启用向量状态并使用合法、支持的 vtype;同宽源/目的可重叠,源值取自写回前,LMUL>1 的组须对齐。掩码目标不得与 v0 重叠;v0 不能同时作 SEW 数据源和 EEW=1 掩码。
处理 vstart≤i<vl 的掩码启用元素;前置元素保持,非活跃/尾部按 vma/vta 保持或写全 1。vstart≥vl(含 vl=0)不更新任何目标。成功结束清零 vstart;实现可拒绝不支持的非零 vstart。
启用本页扩展与向量状态,合法 vtype、LMUL=1、VLEN≥128、vl=1、vstart=0、无掩码;SEW=32, v8[0]=0x0000000B: popcount32=3,写入 v4[0]。
可按语法使用 v0.t;省略时 vm=1。vm=0 时 v0 作为 EEW=1 掩码,普通数据源或目标不能同时重用 v0,否则编码保留。
Zvbb:Zve32x 支持 SEW=8/16/32;Zve64x 还支持 SEW=64。
vcpop.v 分别统计每个 SEW 位元素中的 1,写回向量 vd;vcpop.m 统计源掩码中值为 1 的活动掩码元素,将总数写入一个整数 x 寄存器。