diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2016-04-22 17:57:34 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2016-04-22 17:57:34 +0000 |
commit | 1a601590640f6af67873bf0a72cbf4de39bad95f (patch) | |
tree | 5edd298c98951e2ad8053fd4ba9eb3d30649b458 /llvm/test | |
parent | 2b909e9917b27568f256aece48b5c3d5f07d3ad0 (diff) | |
download | bcm5719-llvm-1a601590640f6af67873bf0a72cbf4de39bad95f.tar.gz bcm5719-llvm-1a601590640f6af67873bf0a72cbf4de39bad95f.zip |
[SimplifyCFG] Add final missing implications to isImpliedTrueByMatchingCmp.
Summary: eq imply [u|s]ge and [u|s]le are true.
Remove redundant logic by implementing isImpliedFalseByMatchingCmp(Pred1, Pred2)
as isImpliedTrueByMatchingCmp(Pred1, getInversePredicate(Pred2)).
llvm-svn: 267177
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Transforms/SimplifyCFG/implied-cond-matching.ll | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/implied-cond-matching.ll b/llvm/test/Transforms/SimplifyCFG/implied-cond-matching.ll index e49139bc1e3..d32fd9ca4ef 100644 --- a/llvm/test/Transforms/SimplifyCFG/implied-cond-matching.ll +++ b/llvm/test/Transforms/SimplifyCFG/implied-cond-matching.ll @@ -140,10 +140,10 @@ untaken: ret void } -; A == B implies A >=u B is unknown to be true or false. +; A == B implies A >=u B is true. ; CHECK-LABEL: @test_eq_uge ; CHECK: call void @is(i1 true) -; CHECK: call void @is(i1 false) +; CHECK-NOT: call void @is(i1 false) define void @test_eq_uge(i32 %a, i32 %b) { %cmp1 = icmp eq i32 %a, %b br i1 %cmp1, label %taken, label %untaken @@ -188,10 +188,10 @@ untaken: ret void } -; A == B implies A <=u B is unknown to be true or false. +; A == B implies A <=u B is true. ; CHECK-LABEL: @test_eq_ule ; CHECK: call void @is(i1 true) -; CHECK: call void @is(i1 false) +; CHECK-NOT: call void @is(i1 false) define void @test_eq_ule(i32 %a, i32 %b) { %cmp1 = icmp eq i32 %a, %b br i1 %cmp1, label %taken, label %untaken @@ -236,10 +236,10 @@ untaken: ret void } -; A == B implies A >=s B is unknown to be true or false. +; A == B implies A >=s B is true. ; CHECK-LABEL: @test_eq_sge ; CHECK: call void @is(i1 true) -; CHECK: call void @is(i1 false) +; CHECK-NOT: call void @is(i1 false) define void @test_eq_sge(i32 %a, i32 %b) { %cmp1 = icmp eq i32 %a, %b br i1 %cmp1, label %taken, label %untaken @@ -284,10 +284,10 @@ untaken: ret void } -; A == B implies A <=s B is unknown to be true or false. +; A == B implies A <=s B is true. ; CHECK-LABEL: @test_eq_sle ; CHECK: call void @is(i1 true) -; CHECK: call void @is(i1 false) +; CHECK-NOT: call void @is(i1 false) define void @test_eq_sle(i32 %a, i32 %b) { %cmp1 = icmp eq i32 %a, %b br i1 %cmp1, label %taken, label %untaken |