summaryrefslogtreecommitdiff
path: root/test/CodeGen/PowerPC/named-reg-alloc-r1.ll
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2014-05-11 19:29:11 +0000
committerHal Finkel <hfinkel@anl.gov>2014-05-11 19:29:11 +0000
commit70a83b490ea9e2e9c5ae4991a8c71248467974c8 (patch)
treefd1b86d25cf4b3a6f29d80b7943f4048ae56b5c7 /test/CodeGen/PowerPC/named-reg-alloc-r1.ll
parent24f554f05277413fd8ec77f80c3241d0298ab57f (diff)
[PowerPC] Add global named register support
Support for the intrinsics that read from and write to global named registers is added for r1, r2 and r13 (depending on the subtarget). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208509 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/PowerPC/named-reg-alloc-r1.ll')
-rw-r--r--test/CodeGen/PowerPC/named-reg-alloc-r1.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/named-reg-alloc-r1.ll b/test/CodeGen/PowerPC/named-reg-alloc-r1.ll
new file mode 100644
index 00000000000..9d0eb34caa5
--- /dev/null
+++ b/test/CodeGen/PowerPC/named-reg-alloc-r1.ll
@@ -0,0 +1,20 @@
+; RUN: llc < %s -mtriple=powerpc-apple-darwin 2>&1 | FileCheck %s --check-prefix=CHECK-DARWIN
+; RUN: llc < %s -mtriple=powerpc64-apple-darwin 2>&1 | FileCheck %s --check-prefix=CHECK-DARWIN
+; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
+; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
+
+define i32 @get_reg() nounwind {
+entry:
+ %reg = call i32 @llvm.read_register.i32(metadata !0)
+ ret i32 %reg
+
+; CHECK-LABEL: @get_reg
+; CHECK: mr 3, 1
+
+; CHECK-DARWIN-LABEL: @get_reg
+; CHECK-DARWIN: mr r3, r1
+}
+
+declare i32 @llvm.read_register.i32(metadata) nounwind
+
+!0 = metadata !{metadata !"r1\00"}