BlockFrequency: Saturate at 1 instead of 0 when multiplying a frequency with a branch...
[oota-llvm.git] / unittests / Support / BlockFrequencyTest.cpp
index ff66bc4e45aae13499a9ff5bac3412eeb50fc63d..bcb88c889507e7ac117da82c024b3f966727aba3 100644 (file)
@@ -8,11 +8,22 @@ using namespace llvm;
 
 namespace {
 
+TEST(BlockFrequencyTest, ZeroToZero) {
+  BlockFrequency Freq(0);
+  BranchProbability Prob(UINT32_MAX - 1, UINT32_MAX);
+  Freq *= Prob;
+  EXPECT_EQ(Freq.getFrequency(), 0u);
+
+  Freq = 1;
+  Freq *= BranchProbability::getZero();
+  EXPECT_EQ(Freq.getFrequency(), 0u);
+}
+
 TEST(BlockFrequencyTest, OneToZero) {
   BlockFrequency Freq(1);
   BranchProbability Prob(UINT32_MAX - 1, UINT32_MAX);
   Freq *= Prob;
-  EXPECT_EQ(Freq.getFrequency(), 0u);
+  EXPECT_EQ(Freq.getFrequency(), 1u);
 }
 
 TEST(BlockFrequencyTest, OneToOne) {