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 | c91c1a205a287bcd6dbea574e08cc0351fbfe9f7 (patch) | |
tree | a7317ecd7914a987a864a889750a6f25b2ea69cc /llvm/test/Transforms/CorrelatedValuePropagation/basic.ll | |
parent | 0acd994f9030789dda7da0ec0764fb38ffe47df4 (diff) | |
download | bcm5719-llvm-c91c1a205a287bcd6dbea574e08cc0351fbfe9f7.tar.gz bcm5719-llvm-c91c1a205a287bcd6dbea574e08cc0351fbfe9f7.zip |
Propagate non-local comparisons. Fixes PR1757.
llvm-svn: 113025
Diffstat (limited to 'llvm/test/Transforms/CorrelatedValuePropagation/basic.ll')
-rw-r--r-- | llvm/test/Transforms/CorrelatedValuePropagation/basic.ll | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll b/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll index 7752ebd7ee6..24666e901e9 100644 --- a/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll +++ b/llvm/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 |