diff options
author | Owen Anderson <resistor@mac.com> | 2010-11-19 22:34:53 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-11-19 22:34:53 +0000 |
commit | 563d9bdc84d30757cae9f5e44277bf0578074c5d (patch) | |
tree | 3ebb009955678d37df2e272a2a1c1965c19c33d7 | |
parent | 0d58122e1221665d421a53741ef638505ecbe745 (diff) | |
download | external_llvm-563d9bdc84d30757cae9f5e44277bf0578074c5d.zip external_llvm-563d9bdc84d30757cae9f5e44277bf0578074c5d.tar.gz external_llvm-563d9bdc84d30757cae9f5e44277bf0578074c5d.tar.bz2 |
Add a test for CodeGenPrepare's ability to look through PHI nodes when performing
addressing mode folding, introduced in r119853.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119857 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/Transforms/CodeGenPrepare/phi.ll | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Transforms/CodeGenPrepare/phi.ll b/test/Transforms/CodeGenPrepare/phi.ll new file mode 100644 index 0000000..29e17c0 --- /dev/null +++ b/test/Transforms/CodeGenPrepare/phi.ll @@ -0,0 +1,23 @@ +; RUN: llc -march=arm < %s | FileCheck %s +; <rdar://problem/8686347> + +define i32 @test1(i1 %a, i32* %b) { +; CHECK: test1 +entry: + br i1 %a, label %lblock, label %rblock + +lblock: + %lbranch = getelementptr i32* %b, i32 1 + br label %end + +rblock: + %rbranch = getelementptr i32* %b, i32 1 + br label %end + +end: +; CHECK: ldr r0, [r1, #4] + %gep = phi i32* [%lbranch, %lblock], [%rbranch, %rblock] + %r = load i32* %gep +; CHECK-NEXT: bx lr + ret i32 %r +}
\ No newline at end of file |