From 12f3ca4cdb95b193af905a00e722a4dcb40b3de3 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Wed, 26 Apr 2017 19:45:00 +0000 Subject: Vendor import of llvm trunk r301441: https://llvm.org/svn/llvm-project/llvm/trunk@301441 --- unittests/Support/BranchProbabilityTest.cpp | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'unittests/Support/BranchProbabilityTest.cpp') diff --git a/unittests/Support/BranchProbabilityTest.cpp b/unittests/Support/BranchProbabilityTest.cpp index f03b09b66e81d..54948baea515a 100644 --- a/unittests/Support/BranchProbabilityTest.cpp +++ b/unittests/Support/BranchProbabilityTest.cpp @@ -115,6 +115,54 @@ TEST(BranchProbabilityTest, MoreOperators) { EXPECT_FALSE(BigZero >= BigOne); } +TEST(BranchProbabilityTest, ArithmeticOperators) { + BP Z(0, 1); + BP O(1, 1); + BP H(1, 2); + BP Q(1, 4); + BP Q3(3, 4); + + EXPECT_EQ(Z + O, O); + EXPECT_EQ(H + Z, H); + EXPECT_EQ(H + H, O); + EXPECT_EQ(Q + H, Q3); + EXPECT_EQ(Q + Q3, O); + EXPECT_EQ(H + Q3, O); + EXPECT_EQ(Q3 + Q3, O); + + EXPECT_EQ(Z - O, Z); + EXPECT_EQ(O - Z, O); + EXPECT_EQ(O - H, H); + EXPECT_EQ(O - Q, Q3); + EXPECT_EQ(Q3 - H, Q); + EXPECT_EQ(Q - H, Z); + EXPECT_EQ(Q - Q3, Z); + + EXPECT_EQ(Z * O, Z); + EXPECT_EQ(H * H, Q); + EXPECT_EQ(Q * O, Q); + EXPECT_EQ(O * O, O); + EXPECT_EQ(Z * Z, Z); + + EXPECT_EQ(Z * 3, Z); + EXPECT_EQ(Q * 3, Q3); + EXPECT_EQ(H * 3, O); + EXPECT_EQ(Q3 * 2, O); + EXPECT_EQ(O * UINT32_MAX, O); + + EXPECT_EQ(Z / 4, Z); + EXPECT_EQ(O / 4, Q); + EXPECT_EQ(Q3 / 3, Q); + EXPECT_EQ(H / 2, Q); + EXPECT_EQ(O / 2, H); + EXPECT_EQ(H / UINT32_MAX, Z); + + BP Min(1, 1u << 31); + + EXPECT_EQ(O / UINT32_MAX, Z); + EXPECT_EQ(Min * UINT32_MAX, O); +} + TEST(BranchProbabilityTest, getCompl) { EXPECT_EQ(BP(5, 7), BP(2, 7).getCompl()); EXPECT_EQ(BP(2, 7), BP(5, 7).getCompl()); -- cgit v1.2.3