summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support/BranchProbabilityTest.cpp
diff options
context:
space:
mode:
authorSerguei Katkov <serguei.katkov@azul.com>2017-04-21 03:14:30 +0000
committerSerguei Katkov <serguei.katkov@azul.com>2017-04-21 03:14:30 +0000
commit5b817d02bfde6e896f1668712a583d4eb3587725 (patch)
treeb2826e59556b42503104ed6808d75d635fea54b0 /llvm/unittests/Support/BranchProbabilityTest.cpp
parentef58b0401a611a0a56541cf7cd0901d7f3fffd8f (diff)
downloadbcm5719-llvm-5b817d02bfde6e896f1668712a583d4eb3587725.tar.gz
bcm5719-llvm-5b817d02bfde6e896f1668712a583d4eb3587725.zip
[BPI] Add multiplication by scalar operators to BranchProbability
This patch just adds two operators to BranchProbability class: (BP * scalar) and (BP *= scalar). Reviewers: junbuml, chandlerc, sanjoy, vsk Reviewed By: chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32334 llvm-svn: 300945
Diffstat (limited to 'llvm/unittests/Support/BranchProbabilityTest.cpp')
-rw-r--r--llvm/unittests/Support/BranchProbabilityTest.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/llvm/unittests/Support/BranchProbabilityTest.cpp b/llvm/unittests/Support/BranchProbabilityTest.cpp
index f03b09b66e8..54948baea51 100644
--- a/llvm/unittests/Support/BranchProbabilityTest.cpp
+++ b/llvm/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());
OpenPOWER on IntegriCloud