# single bit set
+based on RV bitmanip
+
```
uint_xlen_t sbset(uint_xlen_t rs1, uint_xlen_t rs2) { int shamt = rs2 & (XLEN - 1);
}
# shuffle / unshuffle
+based on RV bitmanip
```
uint64_t shuffle64_stage(uint64_t src, uint64_t maskL, uint64_t maskR, int N) { uint64_t x = src & ~(maskL | maskR);
}
# xperm
+based on RV bitmanip
```
uint_xlen_t xperm(uint_xlen_t rs1, uint_xlen_t rs2, int sz_log2) { uint_xlen_t r = 0;
}
# gorc
+based on RV bitmanip
```
uint32_t gorc32(uint32_t rs1, uint32_t rs2) { uint32_t x = rs1;
}
# cmix
+based on RV bitmanip
+
```
uint_xlen_t cmix(uint_xlen_t rs1, uint_xlen_t rs2, uint_xlen_t rs3) { return (rs1 & rs2) | (rs3 & ~rs2);
}