__builtin_ctz:
Returns the number of trailing 0-bits in x, starting at the least significant
bit position. If x is 0, the result is undefined.
_BitScanForward:
Search the mask data from least significant bit (LSB) to the most significant
bit (MSB) for a set bit (1). If a set bit is found, the bit position of the
first set bit found is returned in the first parameter. If no set bit is found,
0 is returned; otherwise, 1 is returned.
__builtin_clz:
Returns the number of leading 0-bits in x, starting at the most significant
bit position. If x is 0, the result is undefined.
_BitScanReverse:
Search the mask data from most significant bit (MSB) to least significant bit
(LSB) for a set bit (1). Returns Nonzero if Index was set, or 0 if no set bits
were found. Index is loaded with the bit position of the first set bit (1) found.