summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopSimplify/basictest.ll
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
committerEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
commita86343512845c9c1fdbac865fea88aa5fce7142a (patch)
tree666fc6353de19ad8b00e56b67edd33f24104e4a7 /llvm/test/Transforms/LoopSimplify/basictest.ll
parent7f8ca6e3679b3af951cb7a4b1377edfaa3244b93 (diff)
downloadbcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.tar.gz
bcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.zip
Temporarily Revert "Add basic loop fusion pass."
As it's causing some bot failures (and per request from kbarton). This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. llvm-svn: 358546
Diffstat (limited to 'llvm/test/Transforms/LoopSimplify/basictest.ll')
-rw-r--r--llvm/test/Transforms/LoopSimplify/basictest.ll236
1 files changed, 0 insertions, 236 deletions
diff --git a/llvm/test/Transforms/LoopSimplify/basictest.ll b/llvm/test/Transforms/LoopSimplify/basictest.ll
deleted file mode 100644
index e5fb7b9907b..00000000000
--- a/llvm/test/Transforms/LoopSimplify/basictest.ll
+++ /dev/null
@@ -1,236 +0,0 @@
-; RUN: opt < %s -S -loop-simplify | FileCheck %s
-; RUN: opt < %s -S -passes=loop-simplify | FileCheck %s
-
-; This function should get a preheader inserted before bb3, that is jumped
-; to by bb1 & bb2
-define void @test() {
-; CHECK-LABEL: define void @test(
-entry:
- br i1 true, label %bb1, label %bb2
-
-bb1:
- br label %bb3
-; CHECK: bb1:
-; CHECK-NEXT: br label %[[PH:.*]]
-
-bb2:
- br label %bb3
-; CHECK: bb2:
-; CHECK-NEXT: br label %[[PH]]
-
-bb3:
- br label %bb3
-; CHECK: [[PH]]:
-; CHECK-NEXT: br label %bb3
-;
-; CHECK: bb3:
-; CHECK-NEXT: br label %bb3
-}
-
-; Test a case where we have multiple exit blocks as successors of a single loop
-; block that need to be made dedicated exit blocks. We also have multiple
-; exiting edges to one of the exit blocks that all should be rewritten.
-define void @test_multiple_exits_from_single_block(i8 %a, i8* %b.ptr) {
-; CHECK-LABEL: define void @test_multiple_exits_from_single_block(
-entry:
- switch i8 %a, label %loop [
- i8 0, label %exit.a
- i8 1, label %exit.b
- ]
-; CHECK: entry:
-; CHECK-NEXT: switch i8 %a, label %[[PH:.*]] [
-; CHECK-NEXT: i8 0, label %exit.a
-; CHECK-NEXT: i8 1, label %exit.b
-; CHECK-NEXT: ]
-
-loop:
- %b = load volatile i8, i8* %b.ptr
- switch i8 %b, label %loop [
- i8 0, label %exit.a
- i8 1, label %exit.b
- i8 2, label %loop
- i8 3, label %exit.a
- i8 4, label %loop
- i8 5, label %exit.a
- i8 6, label %loop
- ]
-; CHECK: [[PH]]:
-; CHECK-NEXT: br label %loop
-;
-; CHECK: loop:
-; CHECK-NEXT: %[[B:.*]] = load volatile i8, i8* %b.ptr
-; CHECK-NEXT: switch i8 %[[B]], label %[[BACKEDGE:.*]] [
-; CHECK-NEXT: i8 0, label %[[LOOPEXIT_A:.*]]
-; CHECK-NEXT: i8 1, label %[[LOOPEXIT_B:.*]]
-; CHECK-NEXT: i8 2, label %[[BACKEDGE]]
-; CHECK-NEXT: i8 3, label %[[LOOPEXIT_A]]
-; CHECK-NEXT: i8 4, label %[[BACKEDGE]]
-; CHECK-NEXT: i8 5, label %[[LOOPEXIT_A]]
-; CHECK-NEXT: i8 6, label %[[BACKEDGE]]
-; CHECK-NEXT: ]
-;
-; CHECK: [[BACKEDGE]]:
-; CHECK-NEXT: br label %loop
-
-exit.a:
- ret void
-; CHECK: [[LOOPEXIT_A]]:
-; CHECK-NEXT: br label %exit.a
-;
-; CHECK: exit.a:
-; CHECK-NEXT: ret void
-
-exit.b:
- ret void
-; CHECK: [[LOOPEXIT_B]]:
-; CHECK-NEXT: br label %exit.b
-;
-; CHECK: exit.b:
-; CHECK-NEXT: ret void
-}
-
-; Check that we leave already dedicated exits alone when forming dedicated exit
-; blocks.
-define void @test_pre_existing_dedicated_exits(i1 %a, i1* %ptr) {
-; CHECK-LABEL: define void @test_pre_existing_dedicated_exits(
-entry:
- br i1 %a, label %loop.ph, label %non_dedicated_exit
-; CHECK: entry:
-; CHECK-NEXT: br i1 %a, label %loop.ph, label %non_dedicated_exit
-
-loop.ph:
- br label %loop.header
-; CHECK: loop.ph:
-; CHECK-NEXT: br label %loop.header
-
-loop.header:
- %c1 = load volatile i1, i1* %ptr
- br i1 %c1, label %loop.body1, label %dedicated_exit1
-; CHECK: loop.header:
-; CHECK-NEXT: %[[C1:.*]] = load volatile i1, i1* %ptr
-; CHECK-NEXT: br i1 %[[C1]], label %loop.body1, label %dedicated_exit1
-
-loop.body1:
- %c2 = load volatile i1, i1* %ptr
- br i1 %c2, label %loop.body2, label %non_dedicated_exit
-; CHECK: loop.body1:
-; CHECK-NEXT: %[[C2:.*]] = load volatile i1, i1* %ptr
-; CHECK-NEXT: br i1 %[[C2]], label %loop.body2, label %[[LOOPEXIT:.*]]
-
-loop.body2:
- %c3 = load volatile i1, i1* %ptr
- br i1 %c3, label %loop.backedge, label %dedicated_exit2
-; CHECK: loop.body2:
-; CHECK-NEXT: %[[C3:.*]] = load volatile i1, i1* %ptr
-; CHECK-NEXT: br i1 %[[C3]], label %loop.backedge, label %dedicated_exit2
-
-loop.backedge:
- br label %loop.header
-; CHECK: loop.backedge:
-; CHECK-NEXT: br label %loop.header
-
-dedicated_exit1:
- ret void
-; Check that there isn't a split loop exit.
-; CHECK-NOT: br label %dedicated_exit1
-;
-; CHECK: dedicated_exit1:
-; CHECK-NEXT: ret void
-
-dedicated_exit2:
- ret void
-; Check that there isn't a split loop exit.
-; CHECK-NOT: br label %dedicated_exit2
-;
-; CHECK: dedicated_exit2:
-; CHECK-NEXT: ret void
-
-non_dedicated_exit:
- ret void
-; CHECK: [[LOOPEXIT]]:
-; CHECK-NEXT: br label %non_dedicated_exit
-;
-; CHECK: non_dedicated_exit:
-; CHECK-NEXT: ret void
-}
-
-; Check that we form what dedicated exits we can even when some exits are
-; reached via indirectbr which precludes forming dedicated exits.
-define void @test_form_some_dedicated_exits_despite_indirectbr(i8 %a, i8* %ptr, i8** %addr.ptr) {
-; CHECK-LABEL: define void @test_form_some_dedicated_exits_despite_indirectbr(
-entry:
- switch i8 %a, label %loop.ph [
- i8 0, label %exit.a
- i8 1, label %exit.b
- i8 2, label %exit.c
- ]
-; CHECK: entry:
-; CHECK-NEXT: switch i8 %a, label %loop.ph [
-; CHECK-NEXT: i8 0, label %exit.a
-; CHECK-NEXT: i8 1, label %exit.b
-; CHECK-NEXT: i8 2, label %exit.c
-; CHECK-NEXT: ]
-
-loop.ph:
- br label %loop.header
-; CHECK: loop.ph:
-; CHECK-NEXT: br label %loop.header
-
-loop.header:
- %addr1 = load volatile i8*, i8** %addr.ptr
- indirectbr i8* %addr1, [label %loop.body1, label %exit.a]
-; CHECK: loop.header:
-; CHECK-NEXT: %[[ADDR1:.*]] = load volatile i8*, i8** %addr.ptr
-; CHECK-NEXT: indirectbr i8* %[[ADDR1]], [label %loop.body1, label %exit.a]
-
-loop.body1:
- %b = load volatile i8, i8* %ptr
- switch i8 %b, label %loop.body2 [
- i8 0, label %exit.a
- i8 1, label %exit.b
- i8 2, label %exit.c
- ]
-; CHECK: loop.body1:
-; CHECK-NEXT: %[[B:.*]] = load volatile i8, i8* %ptr
-; CHECK-NEXT: switch i8 %[[B]], label %loop.body2 [
-; CHECK-NEXT: i8 0, label %exit.a
-; CHECK-NEXT: i8 1, label %[[LOOPEXIT:.*]]
-; CHECK-NEXT: i8 2, label %exit.c
-; CHECK-NEXT: ]
-
-loop.body2:
- %addr2 = load volatile i8*, i8** %addr.ptr
- indirectbr i8* %addr2, [label %loop.backedge, label %exit.c]
-; CHECK: loop.body2:
-; CHECK-NEXT: %[[ADDR2:.*]] = load volatile i8*, i8** %addr.ptr
-; CHECK-NEXT: indirectbr i8* %[[ADDR2]], [label %loop.backedge, label %exit.c]
-
-loop.backedge:
- br label %loop.header
-; CHECK: loop.backedge:
-; CHECK-NEXT: br label %loop.header
-
-exit.a:
- ret void
-; Check that there isn't a split loop exit.
-; CHECK-NOT: br label %exit.a
-;
-; CHECK: exit.a:
-; CHECK-NEXT: ret void
-
-exit.b:
- ret void
-; CHECK: [[LOOPEXIT]]:
-; CHECK-NEXT: br label %exit.b
-;
-; CHECK: exit.b:
-; CHECK-NEXT: ret void
-
-exit.c:
- ret void
-; Check that there isn't a split loop exit.
-; CHECK-NOT: br label %exit.c
-;
-; CHECK: exit.c:
-; CHECK-NEXT: ret void
-}
OpenPOWER on IntegriCloud