diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-10-18 01:12:29 +0200 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-11-27 22:18:55 +0100 |
commit | 2b77484ed79f2d2edb032b5922236575e57dfb5c (patch) | |
tree | 3777eab1b73a07afb248cbb441b36b9d0ffe148b | |
parent | 9837f19e4fb54f0782a300101910f0461854ace7 (diff) | |
download | sparse-2b77484ed79f2d2edb032b5922236575e57dfb5c.tar.gz |
add log base 2 function: log2_exact()
Add log2_exact() to get the base 2 logarithm of a value known
to be a power of 2.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | bits.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -63,4 +63,11 @@ static inline int is_power_of_2(long long val) return val && !(val & (val - 1)); } +/// +// log base 2 of an exact power-of-2 +static inline int log2_exact(unsigned long long val) +{ + return 8 * sizeof(val) - __builtin_clzl(val) - 1; +} + #endif |