gallium/util: add util_bit_last - finds the last bit set in a word
authorMarek Olšák <maraeo@gmail.com>
Thu, 29 Mar 2012 22:21:11 +0000 (00:21 +0200)
committerMarek Olšák <maraeo@gmail.com>
Tue, 17 Jul 2012 19:22:14 +0000 (21:22 +0200)
src/gallium/auxiliary/util/u_math.h

index f35c35ffe47c704fe83fa740780d22613e424a2a..90b421ed841935d3ee430bc15d1bf3d7ed8c90e6 100644 (file)
@@ -477,6 +477,20 @@ unsigned ffs( unsigned u )
 
 #endif /* FFS_DEFINED */
 
+/**
+ * Find last bit set in a word.  The least significant bit is 1.
+ * Return 0 if no bits are set.
+ */
+static INLINE unsigned util_last_bit(unsigned u)
+{
+   unsigned r = 0;
+   while (u) {
+       r++;
+       u >>= 1;
+   }
+   return r;
+}
+
 
 /* Destructively loop over all of the bits in a mask as in:
  *