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 | c0177aeb7103411b05c3759d2e962da2e75a160c (patch) | |
tree | a8b4619f559d7208ad977bb45560e7371b7374e3 /llvm/test | |
parent | fef5f315af6eb769340b0d6a6f68e6a7f4b5f5a9 (diff) | |
download | bcm5719-llvm-c0177aeb7103411b05c3759d2e962da2e75a160c.tar.gz bcm5719-llvm-c0177aeb7103411b05c3759d2e962da2e75a160c.zip |
Add a test for CodeGenPrepare's ability to look through PHI nodes when performing
addressing mode folding, introduced in r119853.
llvm-svn: 119857
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Transforms/CodeGenPrepare/phi.ll | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/Transforms/CodeGenPrepare/phi.ll b/llvm/test/Transforms/CodeGenPrepare/phi.ll new file mode 100644 index 00000000000..29e17c095a7 --- /dev/null +++ b/llvm/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 |