aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/clmulr.h
blob: ffa046d258507d3e36fd6579fd372b4aad7b3764 (plain)
1
2
3
4
5
6
require_extension(EXT_ZBC);
reg_t a = zext_xlen(RS1), b = zext_xlen(RS2), x = 0;
for (int i = 0; i < xlen; i++)
  if ((b >> i) & 1)
    x ^= a >> (xlen-i-1);
WRITE_RD(sext_xlen(x));