summaryrefslogtreecommitdiff
path: root/test/CodeGen/PowerPC/2010-05-03-retaddr1.ll
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-05-03 22:59:34 +0000
committerDale Johannesen <dalej@apple.com>2010-05-03 22:59:34 +0000
commit08673d295056c93628973c5c54724ac294faef88 (patch)
tree1eae5c5bb485db9aa5be2a045075b5058e0d612c /test/CodeGen/PowerPC/2010-05-03-retaddr1.ll
parent1eaac532615a54a1133367dc2c4ceaa79a150a9d (diff)
downloadllvm-08673d295056c93628973c5c54724ac294faef88.tar.gz
llvm-08673d295056c93628973c5c54724ac294faef88.tar.bz2
llvm-08673d295056c93628973c5c54724ac294faef88.tar.xz
Implement builtin_return_address(x) and builtin_frame_address(x)
on PPC for x!=0. 7624113. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102972 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/PowerPC/2010-05-03-retaddr1.ll')
-rw-r--r--test/CodeGen/PowerPC/2010-05-03-retaddr1.ll24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/2010-05-03-retaddr1.ll b/test/CodeGen/PowerPC/2010-05-03-retaddr1.ll
new file mode 100644
index 0000000000..b10920a6c1
--- /dev/null
+++ b/test/CodeGen/PowerPC/2010-05-03-retaddr1.ll
@@ -0,0 +1,24 @@
+; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin -mcpu=g5 | FileCheck %s
+
+declare i8* @llvm.frameaddress(i32) nounwind readnone
+
+define i8* @g2() nounwind readnone {
+entry:
+; CHECK: _g2:
+; CHECK: lwz r3, 0(r1)
+ %0 = tail call i8* @llvm.frameaddress(i32 1) ; <i8*> [#uses=1]
+ ret i8* %0
+}
+
+declare i8* @llvm.returnaddress(i32) nounwind readnone
+
+define i8* @g() nounwind readnone {
+entry:
+; CHECK: _g:
+; CHECK: mflr r0
+; CHECK: stw r0, 8(r1)
+; CHECK: lwz r3, 0(r1)
+; CHECK: lwz r3, 8(r3)
+ %0 = tail call i8* @llvm.returnaddress(i32 1) ; <i8*> [#uses=1]
+ ret i8* %0
+}