diff options
Diffstat (limited to 'llvm/unittests/Support/BranchProbabilityTest.cpp')
-rw-r--r-- | llvm/unittests/Support/BranchProbabilityTest.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/unittests/Support/BranchProbabilityTest.cpp b/llvm/unittests/Support/BranchProbabilityTest.cpp index 847661d21b3..e90e7f8ff11 100644 --- a/llvm/unittests/Support/BranchProbabilityTest.cpp +++ b/llvm/unittests/Support/BranchProbabilityTest.cpp @@ -288,6 +288,7 @@ TEST(BranchProbabilityTest, scaleBruteForce) { } TEST(BranchProbabilityTest, NormalizeProbabilities) { + const auto UnknownProb = BranchProbability::getUnknown(); { SmallVector<BranchProbability, 2> Probs{{0, 1}, {0, 1}}; BranchProbability::normalizeProbabilities(Probs.begin(), Probs.end()); @@ -322,6 +323,36 @@ TEST(BranchProbabilityTest, NormalizeProbabilities) { EXPECT_EQ(BranchProbability::getDenominator() / 3 + 1, Probs[2].getNumerator()); } + { + SmallVector<BranchProbability, 2> Probs{{0, 1}, UnknownProb}; + BranchProbability::normalizeProbabilities(Probs.begin(), Probs.end()); + EXPECT_EQ(0, Probs[0].getNumerator()); + EXPECT_EQ(BranchProbability::getDenominator(), Probs[1].getNumerator()); + } + { + SmallVector<BranchProbability, 2> Probs{{1, 1}, UnknownProb}; + BranchProbability::normalizeProbabilities(Probs.begin(), Probs.end()); + EXPECT_EQ(BranchProbability::getDenominator(), Probs[0].getNumerator()); + EXPECT_EQ(0, Probs[1].getNumerator()); + } + { + SmallVector<BranchProbability, 2> Probs{{1, 2}, UnknownProb}; + BranchProbability::normalizeProbabilities(Probs.begin(), Probs.end()); + EXPECT_EQ(BranchProbability::getDenominator() / 2, Probs[0].getNumerator()); + EXPECT_EQ(BranchProbability::getDenominator() / 2, Probs[1].getNumerator()); + } + { + SmallVector<BranchProbability, 4> Probs{ + {1, 2}, {1, 2}, {1, 2}, UnknownProb}; + BranchProbability::normalizeProbabilities(Probs.begin(), Probs.end()); + EXPECT_EQ(BranchProbability::getDenominator() / 3 + 1, + Probs[0].getNumerator()); + EXPECT_EQ(BranchProbability::getDenominator() / 3 + 1, + Probs[1].getNumerator()); + EXPECT_EQ(BranchProbability::getDenominator() / 3 + 1, + Probs[2].getNumerator()); + EXPECT_EQ(0, Probs[3].getNumerator()); + } } } |