VCLMUL.VX 如何使用掩码?
汇编末尾可选写 v0.t,对应 vm=0;省略时 vm=1。vm 是编码字段,不是需要写出的汇编寄存器。掩码与寄存器组重叠限制仍适用。
向量-标量无进位乘法低位:GF(2) 多项式乘法返回低 64 位,仅定义 SEW=64。
vd、vs2 选择 v0–v31;rs1 选择 x0–x31,x0 恒为零。末尾可选 v0.t 对应 vm=0;省略为 vm=1,没有立即数。
32 位 OP-V:funct6=001100,vm[25],vs2[24:20],rs1[19:15],funct3=110,vd[11:7],opcode=1010111。
Zvbc 依赖 Zve64x,仅定义 SEW=64;其他 SEW 编码保留。活动元素执行 GF(2) 无进位乘法,返回 128 位乘积的低 64 位;RV32 的 x[rs1] 零扩展到 64 位。
启用向量状态并使用合法、支持的 vtype;同宽源/目的可重叠,源值取自写回前,LMUL>1 的组须对齐。掩码目标不得与 v0 重叠;v0 不能同时作 SEW 数据源和 EEW=1 掩码。
处理 vstart≤i<vl 的掩码启用元素;前置元素保持,非活跃/尾部按 vma/vta 保持或写全 1。vstart≥vl(含 vl=0)不更新任何目标。成功结束清零 vstart;实现可拒绝不支持的非零 vstart。
vclmul.vx 是 Zvbc 的向量-标量无进位乘法。将 x[rs1] 零扩展或截断到 SEW 后用于每个通道,与 vs2[i] 执行 GF(2) 多项式乘法,返回低 64 位。SEW 不是 64 时编码保留。
此有界模型只展示 lane 0 的 ISA 可见状态;不表示流水线、密码协议或未指定的非活跃/尾部值。
执行环境:启用本页扩展与向量状态,合法支持的 vtype,LMUL=1、VLEN≥64×SEW,仅展开 lane 0;vl=32/64 不复制 lane 0 到其他元素。SEW=64 要求 Zve64x。非零 vstart 假设实现支持,否则可产生非法指令异常。
funct6=001100, funct3=110, Zvbc
vclmul.vx 由 Zvbc 提供,执行向量-标量无进位乘法低位。仅定义 SEW=64。
vd、vs2 选择 v0–v31;rs1 选择 x0–x31,x0 恒为零。末尾可选 v0.t 对应 vm=0;省略为 vm=1,没有立即数。
32 位 OP-V:funct6=001100,vm[25],vs2[24:20],rs1[19:15],funct3=110,vd[11:7],opcode=1010111。
Zvbc 依赖 Zve64x,仅定义 SEW=64;其他 SEW 编码保留。活动元素执行 GF(2) 无进位乘法,返回 128 位乘积的低 64 位;RV32 的 x[rs1] 零扩展到 64 位。
启用向量状态并使用合法、支持的 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=64, v8[0]=0x3, x11=0x3: 0x3 XOR (0x3 << 1) = 0x5,写入 v4[0]。
汇编末尾可选写 v0.t,对应 vm=0;省略时 vm=1。vm 是编码字段,不是需要写出的汇编寄存器。掩码与寄存器组重叠限制仍适用。
仅 SEW=64;其他 SEW 编码保留。Zvbc 依赖 Zve64x,RV32 上标量 x[rs1] 零扩展到 64 位。