summaryrefslogtreecommitdiff
path: root/test/Transforms/CorrelatedValuePropagation
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2010-09-03 22:47:08 +0000
committerOwen Anderson <resistor@mac.com>2010-09-03 22:47:08 +0000
commit597dad35b8b86c076dbbb0d095319c79de7806ca (patch)
treea8d39d09960b379da2bfbe1be6592dd926011caf /test/Transforms/CorrelatedValuePropagation
parent2429e2ac23cc1a5cb8154ed4fc44a16e725aa252 (diff)
downloadllvm-597dad35b8b86c076dbbb0d095319c79de7806ca.tar.gz
llvm-597dad35b8b86c076dbbb0d095319c79de7806ca.tar.bz2
llvm-597dad35b8b86c076dbbb0d095319c79de7806ca.tar.xz
Propagate non-local comparisons. Fixes PR1757.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113025 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/CorrelatedValuePropagation')
-rw-r--r--test/Transforms/CorrelatedValuePropagation/basic.ll24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/Transforms/CorrelatedValuePropagation/basic.ll b/test/Transforms/CorrelatedValuePropagation/basic.ll
index 7752ebd7ee..24666e901e 100644
--- a/test/Transforms/CorrelatedValuePropagation/basic.ll
+++ b/test/Transforms/CorrelatedValuePropagation/basic.ll
@@ -56,4 +56,28 @@ bb2: ; preds = %entry
%should_be_const = load i8* %a
; CHECK: ret i8 7
ret i8 %should_be_const
+}
+
+; PR1757
+; CHECK: @test4
+define i32 @test4(i32) {
+EntryBlock:
+; CHECK: icmp sgt i32 %0, 2
+ %.demorgan = icmp sgt i32 %0, 2
+ br i1 %.demorgan, label %GreaterThanTwo, label %LessThanOrEqualToTwo
+
+GreaterThanTwo:
+; CHECK-NOT: icmp eq i32 %0, 2
+ icmp eq i32 %0, 2
+; CHECK: br i1 false
+ br i1 %1, label %Impossible, label %NotTwoAndGreaterThanTwo
+
+NotTwoAndGreaterThanTwo:
+ ret i32 2
+
+Impossible:
+ ret i32 1
+
+LessThanOrEqualToTwo:
+ ret i32 0
} \ No newline at end of file