summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/XCore/resources.ll
diff options
context:
space:
mode:
authorRichard Osborne <richard@xmos.com>2011-02-21 18:23:30 +0000
committerRichard Osborne <richard@xmos.com>2011-02-21 18:23:30 +0000
commit1ae65c7cb895b3088d4c1ef4e0b91defcc8cf1db (patch)
treea90b05080e85945a06f48f1e21b5fc1f2b171110 /llvm/test/CodeGen/XCore/resources.ll
parent33a3f356ef27d920a2efe04668c051b73b9c2b91 (diff)
downloadbcm5719-llvm-1ae65c7cb895b3088d4c1ef4e0b91defcc8cf1db.tar.gz
bcm5719-llvm-1ae65c7cb895b3088d4c1ef4e0b91defcc8cf1db.zip
Add XCore intrinsics for various instructions on ports.
llvm-svn: 126132
Diffstat (limited to 'llvm/test/CodeGen/XCore/resources.ll')
-rw-r--r--llvm/test/CodeGen/XCore/resources.ll40
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/XCore/resources.ll b/llvm/test/CodeGen/XCore/resources.ll
index 3114bdcd177..b7cda589021 100644
--- a/llvm/test/CodeGen/XCore/resources.ll
+++ b/llvm/test/CodeGen/XCore/resources.ll
@@ -11,6 +11,11 @@ declare void @llvm.xcore.outct.p1i8(i8 addrspace(1)* %r, i32 %value)
declare void @llvm.xcore.chkct.p1i8(i8 addrspace(1)* %r, i32 %value)
declare void @llvm.xcore.setd.p1i8(i8 addrspace(1)* %r, i32 %value)
declare void @llvm.xcore.setc.p1i8(i8 addrspace(1)* %r, i32 %value)
+declare i32 @llvm.xcore.inshr.p1i8(i8 addrspace(1)* %r, i32 %value)
+declare i32 @llvm.xcore.outshr.p1i8(i8 addrspace(1)* %r, i32 %value)
+declare void @llvm.xcore.setpt.p1i8(i8 addrspace(1)* %r, i32 %value)
+declare i32 @llvm.xcore.getts.p1i8(i8 addrspace(1)* %r)
+declare void @llvm.xcore.syncr.p1i8(i8 addrspace(1)* %r)
define i8 addrspace(1)* @getr() {
; CHECK: getr:
@@ -109,3 +114,38 @@ define void @setci(i8 addrspace(1)* %r) {
call void @llvm.xcore.setc.p1i8(i8 addrspace(1)* %r, i32 2)
ret void
}
+
+define i32 @inshr(i32 %value, i8 addrspace(1)* %r) {
+; CHECK: inshr:
+; CHECK: inshr r0, res[r1]
+ %result = call i32 @llvm.xcore.inshr.p1i8(i8 addrspace(1)* %r, i32 %value)
+ ret i32 %result
+}
+
+define i32 @outshr(i32 %value, i8 addrspace(1)* %r) {
+; CHECK: outshr:
+; CHECK: outshr res[r1], r0
+ %result = call i32 @llvm.xcore.outshr.p1i8(i8 addrspace(1)* %r, i32 %value)
+ ret i32 %result
+}
+
+define void @setpt(i8 addrspace(1)* %r, i32 %value) {
+; CHECK: setpt:
+; CHECK: setpt res[r0], r1
+ call void @llvm.xcore.setpt.p1i8(i8 addrspace(1)* %r, i32 %value)
+ ret void
+}
+
+define i32 @getts(i8 addrspace(1)* %r) {
+; CHECK: getts:
+; CHECK: getts r0, res[r0]
+ %result = call i32 @llvm.xcore.getts.p1i8(i8 addrspace(1)* %r)
+ ret i32 %result
+}
+
+define void @syncr(i8 addrspace(1)* %r) {
+; CHECK: syncr:
+; CHECK: syncr res[r0]
+ call void @llvm.xcore.syncr.p1i8(i8 addrspace(1)* %r)
+ ret void
+}
OpenPOWER on IntegriCloud