summaryrefslogtreecommitdiff
path: root/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
commitd83318450b96c143e8242e6676eafe55a2539cbc (patch)
tree624c9b62e9bb750e416c89bbad856c715b5a16e7 /test/CodeGen/XCore/resources.ll
parentec43f8052c9d0783b0ac8ffd7ffe9054ea8b6f5f (diff)
downloadllvm-d83318450b96c143e8242e6676eafe55a2539cbc.tar.gz
llvm-d83318450b96c143e8242e6676eafe55a2539cbc.tar.bz2
llvm-d83318450b96c143e8242e6676eafe55a2539cbc.tar.xz
Add XCore intrinsics for various instructions on ports.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126132 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/XCore/resources.ll')
-rw-r--r--test/CodeGen/XCore/resources.ll40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/CodeGen/XCore/resources.ll b/test/CodeGen/XCore/resources.ll
index 3114bdcd17..b7cda58902 100644
--- a/test/CodeGen/XCore/resources.ll
+++ b/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
+}