VSM3C.VI

RISC-V VSM3C.VI Instruction Details

Instruction ManualI-type

Vector SM3 compression round selected by uimm; executes as an unmasked element-group crypto instruction.

Instruction Syntax

vsm3c.vi vd, vs2, uimm
Operand Breakdown
Destination rd: general-purpose register receiving the result.
Source rs1: register holding the first operand.
Immediate imm: 12-bit signed value, sign-extended before operation with rs1.
ZvkshVector CryptoSM3

Instruction Behavior

VSM3C.VI is a vector SM3 compression round selected by uimm instruction. SM3 forms use SEW=32, EGW=256, and EGS=8.

Quick Understanding & Search Notes

VSM3C.VI is an SM3 vector crypto instruction executed over element groups, not an ordinary independent per-element integer operation.

SM3 uses 256-bit element groups; SM4 uses 128-bit element groups.
The official syntax has no vm operand, so v0.t masking is not added.

Common Usage Scenarios

Crypto & Security

Understand this scenario with real code like «vsm3c.vi vd, vs2, uimm».

Vector Acceleration

Understand this scenario with real code like «vsm3c.vi vd, vs2, uimm».

Pre-Use Checklist

Syntax Check
  • Confirm the current instruction format is I-type.
  • Confirm the operand order matches the example.
Semantic Check
  • Ensure the destination register usage is compatible with the calling convention.
  • Confirm this is not the lower-level form of a pseudo-instruction expansion.

Pitfalls / Common Confusions

There is no vm operand; this element-group crypto instruction is unmasked.
SEW must be 32, and vl/vstart must be multiples of EGS=8.
Watch vd input/output use and the official register-group overlap restrictions.

FAQ

Is VSM3C.VI an element-wise masked operation?

No. It is an element-group crypto instruction and the official syntax has no vm.

What vtype restriction matters for VSM3C.VI?

SEW must be 32 and LMUL*VLEN must cover a 256-bit element group.