VSHA2CH.VV 是否支持 vm 掩码?
不支持。官方语法没有 vm 操作数。
向量 SHA-2 压缩两轮,读取状态组和消息调度常量;Zvknha 仅 SEW=32,Zvknhb 支持 SEW=32/64。
语法 vsha2ch.vv vd, vs2, vs1;向量寄存器选择 v0–v31。没有立即数。固定 vm=1,不可掩码;vd 同时作为输入和输出。
32 位 OP-VE:funct6=101110[31:26],固定 vm=1[25],vs2[24:20],vs1[19:15],funct3=010,vd[11:7],opcode=1110111。
Zvknha 依赖 Zve32x,仅 SEW=32(SHA-256);Zvknhb 依赖 Zve64x,支持 SEW=32/64(SHA-256/SHA-512)。vd={c,d,g,h}、vs2={a,b,e,f};vs1 的高两字 [3:2]依次提供 W0(所选低字)、W1(所选高字)。两轮后仅把新 {a,b,e,f} 写入 vd;执行延迟必须与数据无关。
EGS=4、EGW=4*SEW;vl/vstart 非 4 的倍数、扩展不支持当前 SEW、或 vd 与 vs1/vs2 任一寄存器组重叠时编码保留。LMUL*VLEN<EGW 即使 vl=0 也引发非法指令异常。组按 LMUL 对齐;相同源寄存器读相同输入。
启用向量状态并使用合法受支持 vtype。prestart 保持,inactive/tail 遵守 vma/vta;vstart≥vl(含 vl=0)不更新任何目标元素。成功执行将 vstart 清零;非零 vstart 假定实现支持,否则允许非法指令异常。
VSHA2CH.VV 是向量 SHA-2 element-group 指令。它使用 vd 与 vs2 保存的当前状态以及 vs1 中的消息调度加常量执行两轮压缩,vd 同时作为输入和输出。Zvknha 下 SEW 必须为 32;Zvknhb 下 SEW 可为 32 或 64。 CH/CL 的区别是本指令选择 高两字 vs1[3:2];先使用所选对的低字,再使用高字。
该有界模型只展开一个 SHA-2 element group 的两轮 ISA 状态,不表示哈希协议、字节序转换过程或微架构。
执行环境:启用所选扩展与向量状态、合法受支持 vtype,LMUL=1;正常分支 VLEN≥8×SEW,仅展开组 0,元素 0 位于最低 SEW 位。容量不足分支表示 LMUL*VLEN<4×SEW。非零 vstart 假定实现支持;同名源输入组须一致。
VSHA2CH.VV 属于向量 SHA-2 element-group 指令,不能按普通逐元素算术或带 v0.t 掩码的指令理解。
语法 vsha2ch.vv vd, vs2, vs1;向量寄存器选择 v0–v31。没有立即数。固定 vm=1,不可掩码;vd 同时作为输入和输出。
32 位 OP-VE:funct6=101110[31:26],固定 vm=1[25],vs2[24:20],vs1[19:15],funct3=010,vd[11:7],opcode=1110111。
Zvknha 依赖 Zve32x,仅 SEW=32(SHA-256);Zvknhb 依赖 Zve64x,支持 SEW=32/64(SHA-256/SHA-512)。vd={c,d,g,h}、vs2={a,b,e,f};vs1 的高两字 [3:2]依次提供 W0(所选低字)、W1(所选高字)。两轮后仅把新 {a,b,e,f} 写入 vd;执行延迟必须与数据无关。
EGS=4、EGW=4*SEW;vl/vstart 非 4 的倍数、扩展不支持当前 SEW、或 vd 与 vs1/vs2 任一寄存器组重叠时编码保留。LMUL*VLEN<EGW 即使 vl=0 也引发非法指令异常。组按 LMUL 对齐;相同源寄存器读相同输入。
启用向量状态并使用合法受支持 vtype。prestart 保持,inactive/tail 遵守 vma/vta;vstart≥vl(含 vl=0)不更新任何目标元素。成功执行将 vstart 清零;非零 vstart 假定实现支持,否则允许非法指令异常。
启用本页扩展与向量状态,合法受支持 vtype、LMUL=1、VLEN=256、vstart=0、无掩码;SEW=32, vl=4, v4={c,d,g,h}=0, v8={a,b,e,f}=0, v12=0: T1=T2=0 in both rounds; v4={a,b,e,f}=0。只列活动元素/组,尾部按 tu 保持;成功后 vstart=0。
启用本页扩展与向量状态,合法受支持 vtype、LMUL=1、VLEN=256、vstart=0、无掩码;SEW=32, vl=4, v4={c,d,g,h}=0, v8={a,b,e,f}=0, v12=0: T1=T2=0 in both rounds; v4={a,b,e,f}=0。只列活动元素/组,尾部按 tu 保持;成功后 vstart=0。
不支持。官方语法没有 vm 操作数。
由当前 vtype 决定,但必须满足 Zvknha/Zvknhb 对 SEW=32 或 64 的限制。