clmulr
Carry-less multiply (reversed)
clmulr produces bits 2*XLEN-2:XLEN-1 of the 2*XLEN carry-less product
Decode Variables
Bits<5> xs2 = $encoding[24:20];
Bits<5> xs1 = $encoding[19:15];
Bits<5> xd = $encoding[11:7];
Execution
-
IDL
-
Sail
{
let rs1_val = X(rs1);
let rs2_val = X(rs2);
result : xlenbits = zeros();
foreach (i from 0 to (xlen_val - 1))
if rs2_val[i] == bitone then result = result ^ (rs1_val >> (xlen_val - i - 1));
X(rd) = result;
RETIRE_SUCCESS
}