diff options
Diffstat (limited to 'llvm/unittests/Support/MathExtrasTest.cpp')
-rw-r--r-- | llvm/unittests/Support/MathExtrasTest.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/unittests/Support/MathExtrasTest.cpp b/llvm/unittests/Support/MathExtrasTest.cpp index b2c3779..de82721 100644 --- a/llvm/unittests/Support/MathExtrasTest.cpp +++ b/llvm/unittests/Support/MathExtrasTest.cpp @@ -66,6 +66,26 @@ 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)); +} + TEST(MathExtras, findFirstSet) { uint8_t Z8 = 0; uint16_t Z16 = 0; |