Module: BitOps¶
Bitwise operations implemented using C intrinsics when possible.
- proc clz(x: integral)¶
Count leading zeros in x.
Returns: the number of 0 bits before the most significant 1 bit in x Return type: x.type
- proc ctz(x: integral)¶
Count trailing zeros in x.
Returns: the number of 0 bits after the least significant 1 bit in x Return type: x.type
- proc popcount(x: integral)¶
Find the population count of x.
Returns: the number of 1 bits set in x as x.type Return type: x.type
- proc parity(x: integral)¶
Find the parity of x.
Returns: - 0 – when an even number of bits are set in x
- 1 – when an odd number of bits are set in x
Return type: x.type
- proc rotl(x: integral, n: integral)¶
Rotate x left.
Arguments: - x – integral of size bits
- n – rotation amount, must be less than bits
Returns: x rotated left by n bits
Return type: x.type
- proc rotr(x: integral, n: integral)¶
Rotate x right.
Arguments: - x – integral of size bits
- n – rotation amount, must be less than bits
Returns: x rotated right by n bits
Return type: x.type