diff options
author | Owen Anderson <resistor@mac.com> | 2010-09-03 22:47:08 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-09-03 22:47:08 +0000 |
commit | 597dad35b8b86c076dbbb0d095319c79de7806ca (patch) | |
tree | a8d39d09960b379da2bfbe1be6592dd926011caf /test/Transforms/CorrelatedValuePropagation | |
parent | 2429e2ac23cc1a5cb8154ed4fc44a16e725aa252 (diff) | |
download | llvm-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.ll | 24 |
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 |