1 ; RUN: llc -march=xcore < %s | FileCheck %s
3 declare i8 addrspace(1)* @llvm.xcore.getr.p1i8(i32 %type)
4 declare void @llvm.xcore.freer.p1i8(i8 addrspace(1)* %r)
5 declare i32 @llvm.xcore.in.p1i8(i8 addrspace(1)* %r)
6 declare i32 @llvm.xcore.int.p1i8(i8 addrspace(1)* %r)
7 declare i32 @llvm.xcore.inct.p1i8(i8 addrspace(1)* %r)
8 declare void @llvm.xcore.out.p1i8(i8 addrspace(1)* %r, i32 %value)
9 declare void @llvm.xcore.outt.p1i8(i8 addrspace(1)* %r, i32 %value)
10 declare void @llvm.xcore.outct.p1i8(i8 addrspace(1)* %r, i32 %value)
11 declare void @llvm.xcore.chkct.p1i8(i8 addrspace(1)* %r, i32 %value)
12 declare void @llvm.xcore.setd.p1i8(i8 addrspace(1)* %r, i32 %value)
13 declare void @llvm.xcore.setc.p1i8(i8 addrspace(1)* %r, i32 %value)
14 declare i32 @llvm.xcore.inshr.p1i8(i8 addrspace(1)* %r, i32 %value)
15 declare i32 @llvm.xcore.outshr.p1i8(i8 addrspace(1)* %r, i32 %value)
16 declare void @llvm.xcore.setpt.p1i8(i8 addrspace(1)* %r, i32 %value)
17 declare i32 @llvm.xcore.getts.p1i8(i8 addrspace(1)* %r)
18 declare void @llvm.xcore.syncr.p1i8(i8 addrspace(1)* %r)
19 declare void @llvm.xcore.settw.p1i8(i8 addrspace(1)* %r, i32 %value)
21 define i8 addrspace(1)* @getr() {
24 %result = call i8 addrspace(1)* @llvm.xcore.getr.p1i8(i32 5)
25 ret i8 addrspace(1)* %result
28 define void @freer(i8 addrspace(1)* %r) {
30 ; CHECK: freer res[r0]
31 call void @llvm.xcore.freer.p1i8(i8 addrspace(1)* %r)
35 define i32 @in(i8 addrspace(1)* %r) {
37 ; CHECK: in r0, res[r0]
38 %result = call i32 @llvm.xcore.in.p1i8(i8 addrspace(1)* %r)
42 define i32 @int(i8 addrspace(1)* %r) {
44 ; CHECK: int r0, res[r0]
45 %result = call i32 @llvm.xcore.int.p1i8(i8 addrspace(1)* %r)
49 define i32 @inct(i8 addrspace(1)* %r) {
51 ; CHECK: inct r0, res[r0]
52 %result = call i32 @llvm.xcore.inct.p1i8(i8 addrspace(1)* %r)
56 define void @out(i8 addrspace(1)* %r, i32 %value) {
58 ; CHECK: out res[r0], r1
59 call void @llvm.xcore.out.p1i8(i8 addrspace(1)* %r, i32 %value)
63 define void @outt(i8 addrspace(1)* %r, i32 %value) {
65 ; CHECK: outt res[r0], r1
66 call void @llvm.xcore.outt.p1i8(i8 addrspace(1)* %r, i32 %value)
70 define void @outct(i8 addrspace(1)* %r, i32 %value) {
72 ; CHECK: outct res[r0], r1
73 call void @llvm.xcore.outct.p1i8(i8 addrspace(1)* %r, i32 %value)
77 define void @outcti(i8 addrspace(1)* %r) {
79 ; CHECK: outct res[r0], 11
80 call void @llvm.xcore.outct.p1i8(i8 addrspace(1)* %r, i32 11)
84 define void @chkct(i8 addrspace(1)* %r, i32 %value) {
86 ; CHECK: chkct res[r0], r1
87 call void @llvm.xcore.chkct.p1i8(i8 addrspace(1)* %r, i32 %value)
91 define void @chkcti(i8 addrspace(1)* %r) {
93 ; CHECK: chkct res[r0], 11
94 call void @llvm.xcore.chkct.p1i8(i8 addrspace(1)* %r, i32 11)
98 define void @setd(i8 addrspace(1)* %r, i32 %value) {
100 ; CHECK: setd res[r0], r1
101 call void @llvm.xcore.setd.p1i8(i8 addrspace(1)* %r, i32 %value)
105 define void @setc(i8 addrspace(1)* %r, i32 %value) {
107 ; CHECK: setc res[r0], r1
108 call void @llvm.xcore.setc.p1i8(i8 addrspace(1)* %r, i32 %value)
112 define void @setci(i8 addrspace(1)* %r) {
114 ; CHECK: setc res[r0], 2
115 call void @llvm.xcore.setc.p1i8(i8 addrspace(1)* %r, i32 2)
119 define i32 @inshr(i32 %value, i8 addrspace(1)* %r) {
121 ; CHECK: inshr r0, res[r1]
122 %result = call i32 @llvm.xcore.inshr.p1i8(i8 addrspace(1)* %r, i32 %value)
126 define i32 @outshr(i32 %value, i8 addrspace(1)* %r) {
128 ; CHECK: outshr res[r1], r0
129 %result = call i32 @llvm.xcore.outshr.p1i8(i8 addrspace(1)* %r, i32 %value)
133 define void @setpt(i8 addrspace(1)* %r, i32 %value) {
135 ; CHECK: setpt res[r0], r1
136 call void @llvm.xcore.setpt.p1i8(i8 addrspace(1)* %r, i32 %value)
140 define i32 @getts(i8 addrspace(1)* %r) {
142 ; CHECK: getts r0, res[r0]
143 %result = call i32 @llvm.xcore.getts.p1i8(i8 addrspace(1)* %r)
147 define void @syncr(i8 addrspace(1)* %r) {
149 ; CHECK: syncr res[r0]
150 call void @llvm.xcore.syncr.p1i8(i8 addrspace(1)* %r)
154 define void @settw(i8 addrspace(1)* %r, i32 %value) {
156 ; CHECK: settw res[r0], r1
157 call void @llvm.xcore.settw.p1i8(i8 addrspace(1)* %r, i32 %value)