diff options
Diffstat (limited to 'gnu/llvm/unittests/Support/MathExtrasTest.cpp')
| -rw-r--r-- | gnu/llvm/unittests/Support/MathExtrasTest.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/gnu/llvm/unittests/Support/MathExtrasTest.cpp b/gnu/llvm/unittests/Support/MathExtrasTest.cpp index b2c37797887..694a1f24d03 100644 --- a/gnu/llvm/unittests/Support/MathExtrasTest.cpp +++ b/gnu/llvm/unittests/Support/MathExtrasTest.cpp @@ -7,8 +7,8 @@ // //===----------------------------------------------------------------------===// -#include "gtest/gtest.h" #include "llvm/Support/MathExtras.h" +#include "gtest/gtest.h" using namespace llvm; @@ -66,6 +66,31 @@ TEST(MathExtras, countLeadingZeros) { } } +TEST(MathExtras, onesMask) { + EXPECT_EQ(0U, maskLeadingOnes<uint8_t>(0)); + EXPECT_EQ(0U, maskTrailingOnes<uint8_t>(0)); + EXPECT_EQ(0U, maskLeadingOnes<uint16_t>(0)); + EXPECT_EQ(0U, maskTrailingOnes<uint16_t>(0)); + EXPECT_EQ(0U, maskLeadingOnes<uint32_t>(0)); + EXPECT_EQ(0U, maskTrailingOnes<uint32_t>(0)); + EXPECT_EQ(0U, maskLeadingOnes<uint64_t>(0)); + EXPECT_EQ(0U, maskTrailingOnes<uint64_t>(0)); + + EXPECT_EQ(0x00000003U, maskTrailingOnes<uint32_t>(2U)); + EXPECT_EQ(0xC0000000U, maskLeadingOnes<uint32_t>(2U)); + + EXPECT_EQ(0x000007FFU, maskTrailingOnes<uint32_t>(11U)); + EXPECT_EQ(0xFFE00000U, maskLeadingOnes<uint32_t>(11U)); + + EXPECT_EQ(0xFFFFFFFFU, maskTrailingOnes<uint32_t>(32U)); + EXPECT_EQ(0xFFFFFFFFU, maskLeadingOnes<uint32_t>(32U)); + EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, maskTrailingOnes<uint64_t>(64U)); + EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, maskLeadingOnes<uint64_t>(64U)); + + EXPECT_EQ(0x0000FFFFFFFFFFFFULL, maskTrailingOnes<uint64_t>(48U)); + EXPECT_EQ(0xFFFFFFFFFFFF0000ULL, maskLeadingOnes<uint64_t>(48U)); +} + TEST(MathExtras, findFirstSet) { uint8_t Z8 = 0; uint16_t Z16 = 0; @@ -152,6 +177,7 @@ TEST(MathExtras, reverseBits) { } TEST(MathExtras, isPowerOf2_32) { + EXPECT_FALSE(isPowerOf2_32(0)); EXPECT_TRUE(isPowerOf2_32(1 << 6)); EXPECT_TRUE(isPowerOf2_32(1 << 12)); EXPECT_FALSE(isPowerOf2_32((1 << 19) + 3)); @@ -159,6 +185,7 @@ TEST(MathExtras, isPowerOf2_32) { } TEST(MathExtras, isPowerOf2_64) { + EXPECT_FALSE(isPowerOf2_64(0)); EXPECT_TRUE(isPowerOf2_64(1LL << 46)); EXPECT_TRUE(isPowerOf2_64(1LL << 12)); EXPECT_FALSE(isPowerOf2_64((1LL << 53) + 3)); |
