diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-04-29 16:12:13 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-04-29 16:12:13 +0000 |
commit | cd630f2895e2f528ce50e549eb11fee32d6243ef (patch) | |
tree | c5cf97ba7b092c0ef8621c1d1107740ad7ee9af2 /llvm/unittests/Support/BranchProbabilityTest.cpp | |
parent | e872a6eb91eb915ae643d7bf97304d6f0cff140d (diff) | |
download | bcm5719-llvm-cd630f2895e2f528ce50e549eb11fee32d6243ef.tar.gz bcm5719-llvm-cd630f2895e2f528ce50e549eb11fee32d6243ef.zip |
Support: Add unit tests for BranchProbability
llvm-svn: 207540
Diffstat (limited to 'llvm/unittests/Support/BranchProbabilityTest.cpp')
-rw-r--r-- | llvm/unittests/Support/BranchProbabilityTest.cpp | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/llvm/unittests/Support/BranchProbabilityTest.cpp b/llvm/unittests/Support/BranchProbabilityTest.cpp new file mode 100644 index 00000000000..56ab22334ca --- /dev/null +++ b/llvm/unittests/Support/BranchProbabilityTest.cpp @@ -0,0 +1,90 @@ +//===- unittest/Support/BranchProbabilityTest.cpp - BranchProbability tests -=// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/BranchProbability.h" +#include "llvm/Support/raw_ostream.h" +#include "gtest/gtest.h" + +using namespace llvm; + +namespace llvm { +void PrintTo(const BranchProbability &P, ::std::ostream *os) { + *os << P.getNumerator() << "/" << P.getDenominator(); +} +} +namespace { + +typedef BranchProbability BP; +TEST(BranchProbabilityTest, Accessors) { + EXPECT_EQ(1u, BP(1, 7).getNumerator()); + EXPECT_EQ(7u, BP(1, 7).getDenominator()); + EXPECT_EQ(0u, BP::getZero().getNumerator()); + EXPECT_EQ(1u, BP::getZero().getDenominator()); + EXPECT_EQ(1u, BP::getOne().getNumerator()); + EXPECT_EQ(1u, BP::getOne().getDenominator()); +} + +TEST(BranchProbabilityTest, Operators) { + EXPECT_TRUE(BP(1, 7) < BP(2, 7)); + EXPECT_TRUE(BP(1, 7) < BP(1, 4)); + EXPECT_TRUE(BP(5, 7) < BP(3, 4)); + EXPECT_FALSE(BP(1, 7) < BP(1, 7)); + EXPECT_FALSE(BP(1, 7) < BP(2, 14)); + EXPECT_FALSE(BP(4, 7) < BP(1, 2)); + EXPECT_FALSE(BP(4, 7) < BP(3, 7)); + + EXPECT_FALSE(BP(1, 7) > BP(2, 7)); + EXPECT_FALSE(BP(1, 7) > BP(1, 4)); + EXPECT_FALSE(BP(5, 7) > BP(3, 4)); + EXPECT_FALSE(BP(1, 7) > BP(1, 7)); + EXPECT_FALSE(BP(1, 7) > BP(2, 14)); + EXPECT_TRUE(BP(4, 7) > BP(1, 2)); + EXPECT_TRUE(BP(4, 7) > BP(3, 7)); + + EXPECT_TRUE(BP(1, 7) <= BP(2, 7)); + EXPECT_TRUE(BP(1, 7) <= BP(1, 4)); + EXPECT_TRUE(BP(5, 7) <= BP(3, 4)); + EXPECT_TRUE(BP(1, 7) <= BP(1, 7)); + EXPECT_TRUE(BP(1, 7) <= BP(2, 14)); + EXPECT_FALSE(BP(4, 7) <= BP(1, 2)); + EXPECT_FALSE(BP(4, 7) <= BP(3, 7)); + + EXPECT_FALSE(BP(1, 7) >= BP(2, 7)); + EXPECT_FALSE(BP(1, 7) >= BP(1, 4)); + EXPECT_FALSE(BP(5, 7) >= BP(3, 4)); + EXPECT_TRUE(BP(1, 7) >= BP(1, 7)); + EXPECT_TRUE(BP(1, 7) >= BP(2, 14)); + EXPECT_TRUE(BP(4, 7) >= BP(1, 2)); + EXPECT_TRUE(BP(4, 7) >= BP(3, 7)); + + EXPECT_FALSE(BP(1, 7) == BP(2, 7)); + EXPECT_FALSE(BP(1, 7) == BP(1, 4)); + EXPECT_FALSE(BP(5, 7) == BP(3, 4)); + EXPECT_TRUE(BP(1, 7) == BP(1, 7)); + EXPECT_TRUE(BP(1, 7) == BP(2, 14)); + EXPECT_FALSE(BP(4, 7) == BP(1, 2)); + EXPECT_FALSE(BP(4, 7) == BP(3, 7)); + + EXPECT_TRUE(BP(1, 7) != BP(2, 7)); + EXPECT_TRUE(BP(1, 7) != BP(1, 4)); + EXPECT_TRUE(BP(5, 7) != BP(3, 4)); + EXPECT_FALSE(BP(1, 7) != BP(1, 7)); + EXPECT_FALSE(BP(1, 7) != BP(2, 14)); + EXPECT_TRUE(BP(4, 7) != BP(1, 2)); + EXPECT_TRUE(BP(4, 7) != BP(3, 7)); +} + +TEST(BranchProbabilityTest, getCompl) { + EXPECT_EQ(BP(5, 7), BP(2, 7).getCompl()); + EXPECT_EQ(BP(2, 7), BP(5, 7).getCompl()); + EXPECT_EQ(BP::getZero(), BP(7, 7).getCompl()); + EXPECT_EQ(BP::getOne(), BP(0, 7).getCompl()); +} + +} |