diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-11-12 01:55:20 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-11-12 01:55:20 +0000 |
| commit | e2a63f27988d792621223d486a063c0f15c77471 (patch) | |
| tree | 80bc0c63c8acb2bbed5ecb25b5c3b131cd4fdd1e | |
| parent | b3bf49f67ed5a65e178cf94665341224843fb1eb (diff) | |
| download | bcm5719-llvm-e2a63f27988d792621223d486a063c0f15c77471.tar.gz bcm5719-llvm-e2a63f27988d792621223d486a063c0f15c77471.zip | |
We now thread some impossible condition information with LVI.
llvm-svn: 86927
| -rw-r--r-- | llvm/test/Transforms/JumpThreading/basic.ll | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/llvm/test/Transforms/JumpThreading/basic.ll b/llvm/test/Transforms/JumpThreading/basic.ll index 4a1a2868cae..89a38b2624b 100644 --- a/llvm/test/Transforms/JumpThreading/basic.ll +++ b/llvm/test/Transforms/JumpThreading/basic.ll @@ -321,14 +321,42 @@ F2: } +; Impossible conditional constraints should get threaded. BB3 is dead here. +define i32 @test11(i32 %A) { +; CHECK: @test11 +; CHECK-NEXT: icmp +; CHECK-NEXT: br i1 %tmp455, label %BB4, label %BB2 + %tmp455 = icmp eq i32 %A, 42 + br i1 %tmp455, label %BB1, label %BB2 + +BB2: +; CHECK: call i32 @f1() +; CHECK-NEXT: call void @f3() +; CHECK-NEXT: ret i32 4 + %C = call i32 @f1() + ret i32 %C + + +BB1: + %tmp459 = icmp eq i32 %A, 43 + br i1 %tmp459, label %BB3, label %BB4 + +BB3: + call i32 @f2() + ret i32 3 + +BB4: + call void @f3() + ret i32 4 +} ;;; Duplicate condition to avoid xor of cond. ;;; TODO: Make this happen. -define i32 @test11(i1 %cond, i1 %cond2) { +define i32 @testXX(i1 %cond, i1 %cond2) { Entry: -; CHECK: @test11 +; CHECK: @testXX %v1 = call i32 @f1() br i1 %cond, label %Merge, label %F1 |

