diff options
author | Chris Lattner <sabre@nondot.org> | 2010-08-31 18:44:03 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-08-31 18:44:03 +0000 |
commit | e2295f1c806ff123b223028cbb92aa73fd4b67ae (patch) | |
tree | ed5971d888c51fa67d740e92b8041619da70aa1b /llvm/test | |
parent | f681b94f90b97794ed005701e542594d72766e55 (diff) | |
download | bcm5719-llvm-e2295f1c806ff123b223028cbb92aa73fd4b67ae.tar.gz bcm5719-llvm-e2295f1c806ff123b223028cbb92aa73fd4b67ae.zip |
merge two tests.
llvm-svn: 112617
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Transforms/TailCallElim/accum_recursion.ll | 36 | ||||
-rw-r--r-- | llvm/test/Transforms/TailCallElim/switch.ll | 34 |
2 files changed, 35 insertions, 35 deletions
diff --git a/llvm/test/Transforms/TailCallElim/accum_recursion.ll b/llvm/test/Transforms/TailCallElim/accum_recursion.ll index 66928a30324..9475f87e8f5 100644 --- a/llvm/test/Transforms/TailCallElim/accum_recursion.ll +++ b/llvm/test/Transforms/TailCallElim/accum_recursion.ll @@ -37,4 +37,38 @@ return: ; preds = %entry ; CHECK: define i32 @test2_mul ; CHECK: phi i32 ; CHECK-NOT: call i32 -; CHECK: return:
\ No newline at end of file +; CHECK: return: + + +define i64 @test3_fib(i64 %n) nounwind readnone { +; CHECK: @test3_fib +entry: +; CHECK: tailrecurse: +; CHECK: %accumulator.tr = phi i64 [ %n, %entry ], [ %3, %bb1 ] +; CHECK: %n.tr = phi i64 [ %n, %entry ], [ %2, %bb1 ] + switch i64 %n, label %bb1 [ +; CHECK: switch i64 %n.tr, label %bb1 [ + i64 0, label %bb2 + i64 1, label %bb2 + ] + +bb1: +; CHECK: bb1: + %0 = add i64 %n, -1 +; CHECK: %0 = add i64 %n.tr, -1 + %1 = tail call i64 @test3_fib(i64 %0) nounwind +; CHECK: %1 = tail call i64 @test3_fib(i64 %0) + %2 = add i64 %n, -2 +; CHECK: %2 = add i64 %n.tr, -2 + %3 = tail call i64 @test3_fib(i64 %2) nounwind +; CHECK-NOT: tail call i64 @test3_fib + %4 = add nsw i64 %3, %1 +; CHECK: add nsw i64 %accumulator.tr, %1 + ret i64 %4 +; CHECK: br label %tailrecurse + +bb2: +; CHECK: bb2: + ret i64 %n +; CHECK: ret i64 %accumulator.tr +} diff --git a/llvm/test/Transforms/TailCallElim/switch.ll b/llvm/test/Transforms/TailCallElim/switch.ll deleted file mode 100644 index 33884318b0c..00000000000 --- a/llvm/test/Transforms/TailCallElim/switch.ll +++ /dev/null @@ -1,34 +0,0 @@ -; RUN: opt %s -tailcallelim -S | FileCheck %s - -define i64 @fib(i64 %n) nounwind readnone { -; CHECK: @fib -entry: -; CHECK: tailrecurse: -; CHECK: %accumulator.tr = phi i64 [ %n, %entry ], [ %3, %bb1 ] -; CHECK: %n.tr = phi i64 [ %n, %entry ], [ %2, %bb1 ] - switch i64 %n, label %bb1 [ -; CHECK: switch i64 %n.tr, label %bb1 [ - i64 0, label %bb2 - i64 1, label %bb2 - ] - -bb1: -; CHECK: bb1: - %0 = add i64 %n, -1 -; CHECK: %0 = add i64 %n.tr, -1 - %1 = tail call i64 @fib(i64 %0) nounwind -; CHECK: %1 = tail call i64 @fib(i64 %0) - %2 = add i64 %n, -2 -; CHECK: %2 = add i64 %n.tr, -2 - %3 = tail call i64 @fib(i64 %2) nounwind -; CHECK-NOT: tail call i64 @fib - %4 = add nsw i64 %3, %1 -; CHECK: add nsw i64 %accumulator.tr, %1 - ret i64 %4 -; CHECK: br label %tailrecurse - -bb2: -; CHECK: bb2: - ret i64 %n -; CHECK: ret i64 %accumulator.tr -} |