VSM4K.VI

RISC-V VSM4K.VI Instruction Details

Instruction ManualI-type

Vector SM4 round-key expansion selected by uimm; executes as an unmasked element-group crypto instruction.

Instruction Syntax

vsm4k.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.
ZvksedVector CryptoSM4

Instruction Behavior

VSM4K.VI is a vector SM4 round-key expansion selected by uimm instruction. SM4 forms use SEW=32, EGW=128, and EGS=4.

Quick Understanding & Search Notes

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

SM4 uses 128-bit element groups; the .vs form takes one scalar element group from vs2.
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 «vsm4k.vi vd, vs2, uimm».

Vector Acceleration

Understand this scenario with real code like «vsm4k.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=4.
Watch vd input/output use and the official register-group overlap restrictions.

FAQ

Is VSM4K.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 VSM4K.VI?

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