Does SM3P1 use floating-point or vector registers?
No. These scalar crypto extension instructions use integer X registers.
SM3 hash P1 permutation: P1(x) = x ^ ROTL(x,15) ^ ROTL(x,23)
sm3p1 is the Zksh SM3 hash P1 transform instruction. It implements P1(x) = x ^ ROTL(x, 15) ^ ROTL(x, 23): it reads the low 32 bits of rs1, computes the result, and writes rd; RV64 sign-extends that result to XLEN. P1 is a transform used by the SM3 hash function.
Bounded teaching inputs execute the official SM3 fixed-width bit operations; this does not model a complete algorithm or microarchitecture.
SM3P1 is defined in RV32/RV64; RV64 uses X(rs1)[31:0] and sign-extends the 32-bit result to XLEN.
This animation shows only official ISA fields and architectural state; it does not model a complete hash algorithm, pipeline, cache, or timing implementation.
SM3P1 is a Zksh scalar cryptography instruction for SM3 P1 transform. This page is checked against the official scalar crypto extension, avoiding confusion among round functions, key schedule steps, and operand sources.
Understand this scenario with real code like «sm3p1 a0, a1».
Understand this scenario with real code like «sm3p1 a0, a1».
No. These scalar crypto extension instructions use integer X registers.
No. It implements only the SM3 P1 transform; software still combines the required operations for its SM3 algorithm flow.