diff options
Diffstat (limited to 'llvm/test/Transforms/SimpleLoopUnswitch/delete-dead-blocks.ll')
-rw-r--r-- | llvm/test/Transforms/SimpleLoopUnswitch/delete-dead-blocks.ll | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/llvm/test/Transforms/SimpleLoopUnswitch/delete-dead-blocks.ll b/llvm/test/Transforms/SimpleLoopUnswitch/delete-dead-blocks.ll deleted file mode 100644 index aa10670cb4e..00000000000 --- a/llvm/test/Transforms/SimpleLoopUnswitch/delete-dead-blocks.ll +++ /dev/null @@ -1,101 +0,0 @@ -; RUN: opt < %s -simple-loop-unswitch -enable-nontrivial-unswitch -S 2>&1 | FileCheck %s -; RUN: opt < %s -passes=unswitch -enable-nontrivial-unswitch -S 2>&1 | FileCheck %s -; -; Checking that (dead) blocks from inner loop are deleted after unswitch. -; -declare void @foo() - -; CHECK-LABEL: @Test -define void @Test(i32) { -entry: - br label %outer -outer: - %oi = phi i32 [ 0, %entry ], [ %oinc, %outer_continue] - br label %inner -inner: - %ii = phi i32 [ 0, %outer ], [ %iinc, %continue] - call void @foo() - switch i32 %0, label %get_out2 [ - i32 0, label %continue - i32 1, label %case1 - i32 2, label %get_out - ] -; -; since we unswitch on the above switch, %case1 and %continue blocks -; become dead in the original loop -; -; CHECK-NOT: case1: -case1: - br label %continue -; CHECK-NOT: {{^}}continue: -continue: - %iinc = add i32 %ii, 1 - %icmp = icmp eq i32 %ii, 100 - br i1 %icmp, label %inner, label %outer_continue - -outer_continue: - %oinc = add i32 %oi, 1 - %ocmp = icmp eq i32 %oi, 100 - br i1 %ocmp, label %outer, label %get_out - -get_out: - ret void -get_out2: - unreachable -} - -; -; This comes from PR38778 -; CHECK-LABEL: @Test2 -define void @Test2(i32) { -header: - br label %loop -loop: - switch i32 %0, label %continue [ - i32 -2147483648, label %check - i32 98, label %guarded1 - i32 99, label %guarded2 - ] -; CHECK-NOT: {{^}}guarded1: -guarded1: - br i1 undef, label %continue, label %leave -guarded2: - br label %continue -check: - %val = add i32 0, 1 - br i1 undef, label %continue, label %leave -continue: - br label %loop -leave: - %local = phi i32 [ 0, %guarded1 ], [ %val, %check ] - ret void -} - -; -; Yet another test from PR38778 -; -; CHECK-LABEL: @Test3 -define void @Test3(i32) { -header: - br label %outer -outer: - %bad_input.i = icmp eq i32 %0, -2147483648 - br label %inner -inner: - br i1 %bad_input.i, label %overflow, label %switchme -overflow: - br label %continue -switchme: - switch i32 %0, label %continue [ - i32 88, label %go_out - i32 99, label %case2 - ] -; CHECK-NOT: {{^}}case2: -case2: - br label %continue -continue: - %local_11_92 = phi i32 [ 0, %switchme ], [ 18, %case2 ], [ 0, %overflow ] - br i1 undef, label %outer, label %inner -go_out: - unreachable -} |