VSM3C.VI 是否逐元素可掩码?
不是。它是 element-group 密码指令,官方语法无 vm。
向量 SM3 压缩:uimm=0–31 选择两轮组,执行第 2×uimm 和 2×uimm+1 轮。
语法 vsm3c.vi vd, vs2, uimm;v0–v31 为向量寄存器,uimm 为 0–31 的 5 位无符号立即数。固定 vm=1,不可加入 v0.t 掩码。
32 位 OP-VE:funct6=101011[31:26]、vm=1[25]、vs2[24:20]、uimm[19:15]、OPMVV=010[14:12]、vd[11:7]、opcode=1110111[6:0]。
Zvksh 依赖 Zve32x,仅 SEW=32。vd 提供八字状态,vs2 使用 w0/w1/w4/w5;输入输出均交换每个字的字节序。uimm 选择第 2×uimm 与 2×uimm+1 两轮,结果覆盖 vd。花括号按高元素索引到低索引排列。
EGS=8、EGW=256。vl/vstart 非 EGS 的整数倍或不支持的 SEW 属保留编码;LMUL*VLEN<EGW 即使 vl=0 也触发非法指令异常。vd 不得与 vs2 重叠。组遵守 LMUL 对齐;.vs 标量组的 EMUL=ceil(EGW/VLEN)。
启用向量状态,使用合法受支持 vtype。仅处理 vstart/EGS≤i<vl/EGS 的活动组;prestart 保持、tail 遵守 vta。vstart≥vl(含 vl=0)不更新目标元素;成功执行清零 vstart,非零 vstart 假定实现支持。执行延迟必须与数据无关。
输入状态和消息字先交换字节,执行第 2×uimm 与 2×uimm+1 两轮,再把八字结果交换回原字节序并写入 vd。SEW=32、EGW=256、EGS=8。
有界模型展示一个 element group 的官方 ISA 可见数据流,不模拟密码协议或微架构。
固定 vm=1,OP-VE,OPMVV;EGS=8,EGW=256。
以下列表按元素索引从低到高排列;只展示活动组,tail 按 tu 保持。 vd[A..H]=[0,1,2,3,4,5,6,7]; vs2[w0..w7]=[0,1,2,3,4,5,6,7]. 只使用 w0/w1/w4/w5;输入输出交换每字节序。
OP-VE -> funct6 101011 -> vsm3c.vi
VSM3C.VI 是 SM3 向量密码指令,按 element group 执行,不能逐元素独立套用普通整数公式。
语法 vsm3c.vi vd, vs2, uimm;v0–v31 为向量寄存器,uimm 为 0–31 的 5 位无符号立即数。固定 vm=1,不可加入 v0.t 掩码。
32 位 OP-VE:funct6=101011[31:26]、vm=1[25]、vs2[24:20]、uimm[19:15]、OPMVV=010[14:12]、vd[11:7]、opcode=1110111[6:0]。
Zvksh 依赖 Zve32x,仅 SEW=32。vd 提供八字状态,vs2 使用 w0/w1/w4/w5;输入输出均交换每个字的字节序。uimm 选择第 2×uimm 与 2×uimm+1 两轮,结果覆盖 vd。花括号按高元素索引到低索引排列。
EGS=8、EGW=256。vl/vstart 非 EGS 的整数倍或不支持的 SEW 属保留编码;LMUL*VLEN<EGW 即使 vl=0 也触发非法指令异常。vd 不得与 vs2 重叠。组遵守 LMUL 对齐;.vs 标量组的 EMUL=ceil(EGW/VLEN)。
启用向量状态,使用合法受支持 vtype。仅处理 vstart/EGS≤i<vl/EGS 的活动组;prestart 保持、tail 遵守 vta。vstart≥vl(含 vl=0)不更新目标元素;成功执行清零 vstart,非零 vstart 假定实现支持。执行延迟必须与数据无关。
启用本页扩展与向量状态,合法 vtype、SEW=32、VLEN=256、LMUL=1、vl=8、vstart=0、tu;按语法指定的寄存器组预置输入。示例 uimm=0。按本页元素组数据流计算,动画列出初值与结果;成功后 vstart=0。
启用本页扩展与向量状态,合法 vtype、SEW=32、VLEN=256、LMUL=1、vl=8、vstart=0、tu;按语法指定的寄存器组预置输入。示例 uimm=0。按本页元素组数据流计算,动画列出初值与结果;成功后 vstart=0。
不是。它是 element-group 密码指令,官方语法无 vm。
SEW 必须为 32,且 LMUL*VLEN 要能覆盖 256 位 element group。