20 static const U32 DeBruijnBytePos[32] = {0, 1, 28, 2, 29, 14, 24, 3,
21 30, 22, 20, 15, 25, 17, 4, 8,
22 31, 27, 13, 23, 21, 19, 16, 7,
23 26, 12, 18, 6, 11, 5, 10, 9};
24 return DeBruijnBytePos[((
U32) ((val & -(
S32) val) * 0x077CB531U)) >> 27];
54 static const U32 DeBruijnClz[32] = {0, 9, 1, 10, 13, 21, 2, 29,
55 11, 14, 16, 18, 22, 25, 3, 30,
56 8, 12, 20, 28, 15, 17, 24, 7,
57 19, 27, 23, 6, 26, 5, 4, 31};
63 return 31 - DeBruijnClz[(val * 0x07C4ACDDU) >> 27];