From d44644e6d07e3050ad61864cec5c17c0045e1d47 Mon Sep 17 00:00:00 2001
From: Bill Welliver <bill@welliver.org>
Date: Sun, 7 Dec 2014 19:29:36 +0100
Subject: [PATCH] windows: calculate trailing/leading zeros (more) correctly.

---
 src/bitvector.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bitvector.h b/src/bitvector.h
index 3c0ebbbefc..83756fd9a5 100644
--- a/src/bitvector.h
+++ b/src/bitvector.h
@@ -30,7 +30,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz32(unsigned INT32 i) {
 #elif defined(HAS__BITSCANREVERSE)
     unsigned long index;
     if (_BitScanReverse(&index, (unsigned long)i))
-	return (unsigned INT32)index;
+	return (unsigned INT32)(31 - index);
     return 32;
 #else
     unsigned INT32 t;
@@ -101,7 +101,7 @@ static INLINE unsigned INT32 ATTRIBUTE((unused)) clz64(unsigned INT64 i) {
 # elif defined(HAS__BITSCANREVERSE64)
     unsigned long index;
     if (_BitScanReverse64(&index, i))
-	return index;
+	return (63 - index);
     return 64;
 # else
     unsigned INT64 t;
-- 
GitLab