diff options
Diffstat (limited to 'release_23/test/Transforms/SimplifyCFG/switch_thread.ll')
-rw-r--r-- | release_23/test/Transforms/SimplifyCFG/switch_thread.ll | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/release_23/test/Transforms/SimplifyCFG/switch_thread.ll b/release_23/test/Transforms/SimplifyCFG/switch_thread.ll deleted file mode 100644 index a92528a3331f..000000000000 --- a/release_23/test/Transforms/SimplifyCFG/switch_thread.ll +++ /dev/null @@ -1,79 +0,0 @@ -; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \ -; RUN: not grep {call void @DEAD} - -; Test that we can thread a simple known condition through switch statements. - -declare void @foo1() - -declare void @foo2() - -declare void @DEAD() - -define void @test1(i32 %V) { - switch i32 %V, label %A [ - i32 4, label %T - i32 17, label %Done - i32 1234, label %A - ] -;; V == 4 if we get here. -T: ; preds = %0 - call void @foo1( ) - ;; This switch is always statically determined. - switch i32 %V, label %A2 [ - i32 4, label %B - i32 17, label %C - i32 42, label %C - ] -A2: ; preds = %T - call void @DEAD( ) - call void @DEAD( ) - ;; always true - %cond2 = icmp eq i32 %V, 4 ; <i1> [#uses=1] - br i1 %cond2, label %Done, label %C -A: ; preds = %0, %0 - call void @foo1( ) - ;; always true - %cond = icmp ne i32 %V, 4 ; <i1> [#uses=1] - br i1 %cond, label %Done, label %C -Done: ; preds = %B, %A, %A2, %0 - ret void -B: ; preds = %T - call void @foo2( ) - ;; always true - %cond3 = icmp eq i32 %V, 4 ; <i1> [#uses=1] - br i1 %cond3, label %Done, label %C -C: ; preds = %B, %A, %A2, %T, %T - call void @DEAD( ) - ret void -} - -define void @test2(i32 %V) { - switch i32 %V, label %A [ - i32 4, label %T - i32 17, label %D - i32 1234, label %E - ] -;; V != 4, 17, 1234 here. -A: ; preds = %0 - call void @foo1( ) - ;; This switch is always statically determined. - switch i32 %V, label %E [ - i32 4, label %C - i32 17, label %C - i32 42, label %D - ] -;; unreacahble. -C: ; preds = %A, %A - call void @DEAD( ) - ret void -T: ; preds = %0 - call void @foo1( ) - call void @foo1( ) - ret void -D: ; preds = %A, %0 - call void @foo1( ) - ret void -E: ; preds = %A, %0 - ret void -} - |