* bitops_clz64: count leading zeros in a uint64_t (must not be 0) * * Returns 0 if most significant bit is set, 63 if only least * significant bit is set. */
| 62 | * significant bit is set. |
| 63 | */ |
| 64 | static inline int bitops_clz64(uint64_t u) |
| 65 | { |
| 66 | BITOPS_ASSERT_NONZERO(u); |
| 67 | if (sizeof(u) == sizeof(long)) |
| 68 | return __builtin_clzl(u); |
| 69 | else |
| 70 | return __builtin_clzll(u); |
| 71 | } |
| 72 | #else |
| 73 | int bitops_clz32(uint32_t u); |
| 74 | int bitops_clz64(uint64_t u); |
no outgoing calls