Does clmulh access memory?
It does not access data memory. It reads two integer registers and delivers the selected product bits to rd; rd=x0 discards the result.
RV32/RV64 Zbc/Zbkc carry-less multiply, returning high XLEN bits of the 2*XLEN-bit product.
RV32/RV64 Zbc or Zbkc 1.0; syntax clmulh rd, rs1, rs2, with no rs3 or immediate.
32-bit R-type: funct7=0000101, funct3=011, opcode=0110011; register fields select x0–x31.
Select shifted rs1 terms with set rs2 bits and combine with XOR; select full-product bits 2*XLEN-1:XLEN. Sources use old XLEN-bit patterns; x0 reads zero and discards writes.
clmulh performs GF(2) carry-less multiplication and returns the high XLEN bits.
This model shows ISA-visible GF(2) XOR partial products; it does not model integer carries, a pipeline, or a cryptographic protocol.
funct7=0000101, funct3=011
clmulh performs GF(2) carry-less multiplication and returns the high XLEN bits.
RV32 Zbc/Zbkc, x11=0x80000000 and x12=2: full carry-less product=0x0000000100000000; clmulh writes x10=1.
It does not access data memory. It reads two integer registers and delivers the selected product bits to rd; rd=x0 discards the result.
It treats XLEN-bit patterns as polynomial operands for carry-less multiplication, without signed-integer multiplication semantics; partial products combine with XOR.