Index: base/bits_unittest.cc |
diff --git a/base/bits_unittest.cc b/base/bits_unittest.cc |
index 4f5b6ea49e5a825e119a066692966afd3787e277..270b8ef7d3b472557c0a1840e57a6f46c3d52b5d 100644 |
--- a/base/bits_unittest.cc |
+++ b/base/bits_unittest.cc |
@@ -61,5 +61,25 @@ TEST(BitsTest, Align) { |
EXPECT_EQ(kSizeTMax / 2 + 1, Align(1, kSizeTMax / 2 + 1)); |
} |
+TEST(BitsTest, CLZWorks) { |
+ EXPECT_EQ(32u, CountLeadingZeroBits32(0u)); |
+ EXPECT_EQ(31u, CountLeadingZeroBits32(1u)); |
+ EXPECT_EQ(1u, CountLeadingZeroBits32(1u << 30)); |
+ EXPECT_EQ(0u, CountLeadingZeroBits32(1u << 31)); |
+ |
+#if defined(ARCH_CPU_64_BITS) |
+ EXPECT_EQ(64u, CountLeadingZeroBitsSizeT(0ull)); |
+ EXPECT_EQ(63u, CountLeadingZeroBitsSizeT(1ull)); |
+ EXPECT_EQ(32u, CountLeadingZeroBitsSizeT(1ull << 31)); |
+ EXPECT_EQ(1u, CountLeadingZeroBitsSizeT(1ull << 62)); |
+ EXPECT_EQ(0u, CountLeadingZeroBitsSizeT(1ull << 63)); |
+#else |
+ EXPECT_EQ(32u, CountLeadingZeroBitsSizeT(0u)); |
+ EXPECT_EQ(31u, CountLeadingZeroBitsSizeT(1u)); |
+ EXPECT_EQ(1u, CountLeadingZeroBitsSizeT(1u << 30)); |
+ EXPECT_EQ(0u, CountLeadingZeroBitsSizeT(1u << 31)); |
+#endif |
+} |
+ |
} // namespace bits |
} // namespace base |