aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-10-18 01:12:29 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-11-27 22:18:55 +0100
commit2b77484ed79f2d2edb032b5922236575e57dfb5c (patch)
tree3777eab1b73a07afb248cbb441b36b9d0ffe148b
parent9837f19e4fb54f0782a300101910f0461854ace7 (diff)
downloadsparse-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.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/bits.h b/bits.h
index 63a663c2..9908190d 100644
--- a/bits.h
+++ b/bits.h
@@ -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