diff options
Diffstat (limited to 'llvm/test/Transforms/LCSSA/pr28424.ll')
-rw-r--r-- | llvm/test/Transforms/LCSSA/pr28424.ll | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/llvm/test/Transforms/LCSSA/pr28424.ll b/llvm/test/Transforms/LCSSA/pr28424.ll deleted file mode 100644 index cd7969009fb..00000000000 --- a/llvm/test/Transforms/LCSSA/pr28424.ll +++ /dev/null @@ -1,87 +0,0 @@ -; RUN: opt < %s -lcssa -S -o - | FileCheck %s -target triple = "x86_64-unknown-linux-gnu" - -; PR28424 -; Here LCSSA adds phi-nodes for %x into the loop exits. Then, SSAUpdater needs -; to insert phi-nodes to merge these values. That creates a new def, which in -; its turn needs another LCCSA phi-node, and this test ensures that we insert -; it. - -; CHECK-LABEL: @foo1 -define internal i32 @foo1() { -entry: - br label %header - -header: - %x = add i32 0, 1 - br i1 undef, label %if, label %loopexit1 - -if: - br i1 undef, label %latch, label %loopexit2 - -latch: - br i1 undef, label %header, label %loopexit3 - -; CHECK: loopexit1: -; CHECK: %x.lcssa = phi i32 [ %x, %header ] -loopexit1: - br label %loop_with_insert_point - -; CHECK: loopexit2: -; CHECK: %x.lcssa1 = phi i32 [ %x, %if ] -loopexit2: - br label %exit - -; CHECK: loopexit3: -; CHECK: %x.lcssa2 = phi i32 [ %x, %latch ] -loopexit3: - br label %loop_with_insert_point - -; CHECK: loop_with_insert_point: -; CHECK: %x4 = phi i32 [ %x4, %loop_with_insert_point ], [ %x.lcssa2, %loopexit3 ], [ %x.lcssa, %loopexit1 ] -loop_with_insert_point: - br i1 undef, label %loop_with_insert_point, label %bb - -; CHECK: bb: -; CHECK: %x4.lcssa = phi i32 [ %x4, %loop_with_insert_point ] -bb: - br label %exit - -; CHECK: exit: -; CHECK: %x3 = phi i32 [ %x4.lcssa, %bb ], [ %x.lcssa1, %loopexit2 ] -exit: - ret i32 %x -} - -; CHECK-LABEL: @foo2 -define internal i32 @foo2() { -entry: - br label %header - -header: - %x = add i32 0, 1 - br i1 undef, label %latch, label %loopexit1 - -latch: - br i1 undef, label %header, label %loopexit2 - -; CHECK: loopexit1: -; CHECK: %x.lcssa = phi i32 [ %x, %header ] -loopexit1: - br label %loop_with_insert_point - -; CHECK: loopexit2: -; CHECK: %x.lcssa1 = phi i32 [ %x, %latch ] -loopexit2: - br label %loop_with_insert_point - -; CHECK: loop_with_insert_point: -; CHECK: %x2 = phi i32 [ %x2, %loop_with_insert_point ], [ %x.lcssa1, %loopexit2 ], [ %x.lcssa, %loopexit1 ] -loop_with_insert_point: - br i1 undef, label %loop_with_insert_point, label %exit - -; CHECK: exit: -; CHECK: %x2.lcssa = phi i32 [ %x2, %loop_with_insert_point ] -exit: - ret i32 %x -} |