From d99dafe2e4a385dd2a6c76da6d8258deb100657b Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 20 Apr 2017 21:19:10 +0000 Subject: Vendor import of llvm trunk r300890: https://llvm.org/svn/llvm-project/llvm/trunk@300890 --- unittests/Support/MathExtrasTest.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'unittests/Support/MathExtrasTest.cpp') diff --git a/unittests/Support/MathExtrasTest.cpp b/unittests/Support/MathExtrasTest.cpp index b2c377978874..f46d94e9e577 100644 --- a/unittests/Support/MathExtrasTest.cpp +++ b/unittests/Support/MathExtrasTest.cpp @@ -66,6 +66,31 @@ TEST(MathExtras, countLeadingZeros) { } } +TEST(MathExtras, onesMask) { + EXPECT_EQ(0U, maskLeadingOnes(0)); + EXPECT_EQ(0U, maskTrailingOnes(0)); + EXPECT_EQ(0U, maskLeadingOnes(0)); + EXPECT_EQ(0U, maskTrailingOnes(0)); + EXPECT_EQ(0U, maskLeadingOnes(0)); + EXPECT_EQ(0U, maskTrailingOnes(0)); + EXPECT_EQ(0U, maskLeadingOnes(0)); + EXPECT_EQ(0U, maskTrailingOnes(0)); + + EXPECT_EQ(0x00000003U, maskTrailingOnes(2U)); + EXPECT_EQ(0xC0000000U, maskLeadingOnes(2U)); + + EXPECT_EQ(0x000007FFU, maskTrailingOnes(11U)); + EXPECT_EQ(0xFFE00000U, maskLeadingOnes(11U)); + + EXPECT_EQ(0xFFFFFFFFU, maskTrailingOnes(32U)); + EXPECT_EQ(0xFFFFFFFFU, maskLeadingOnes(32U)); + EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, maskTrailingOnes(64U)); + EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, maskLeadingOnes(64U)); + + EXPECT_EQ(0x0000FFFFFFFFFFFFULL, maskTrailingOnes(48U)); + EXPECT_EQ(0xFFFFFFFFFFFF0000ULL, maskLeadingOnes(48U)); +} + TEST(MathExtras, findFirstSet) { uint8_t Z8 = 0; uint16_t Z16 = 0; -- cgit v1.2.3