| ; RUN: llc -march=xcore < %s | FileCheck %s | |
| declare i8 addrspace(1)* @llvm.xcore.getst.p1i8.p1i8(i8 addrspace(1)* %r) | |
| declare void @llvm.xcore.msync.p1i8(i8 addrspace(1)* %r) | |
| declare void @llvm.xcore.ssync() | |
| declare void @llvm.xcore.mjoin.p1i8(i8 addrspace(1)* %r) | |
| declare void @llvm.xcore.initsp.p1i8(i8 addrspace(1)* %r, i8* %value) | |
| declare void @llvm.xcore.initpc.p1i8(i8 addrspace(1)* %r, i8* %value) | |
| declare void @llvm.xcore.initlr.p1i8(i8 addrspace(1)* %r, i8* %value) | |
| declare void @llvm.xcore.initcp.p1i8(i8 addrspace(1)* %r, i8* %value) | |
| declare void @llvm.xcore.initdp.p1i8(i8 addrspace(1)* %r, i8* %value) | |
| define i8 addrspace(1)* @getst(i8 addrspace(1)* %r) { | |
| ; CHECK: getst: | |
| ; CHECK: getst r0, res[r0] | |
| %result = call i8 addrspace(1)* @llvm.xcore.getst.p1i8.p1i8(i8 addrspace(1)* %r) | |
| ret i8 addrspace(1)* %result | |
| } | |
| define void @ssync() { | |
| ; CHECK: ssync: | |
| ; CHECK: ssync | |
| call void @llvm.xcore.ssync() | |
| ret void | |
| } | |
| define void @mjoin(i8 addrspace(1)* %r) { | |
| ; CHECK: mjoin: | |
| ; CHECK: mjoin res[r0] | |
| call void @llvm.xcore.mjoin.p1i8(i8 addrspace(1)* %r) | |
| ret void | |
| } | |
| define void @initsp(i8 addrspace(1)* %t, i8* %src) { | |
| ; CHECK: initsp: | |
| ; CHECK: init t[r0]:sp, r1 | |
| call void @llvm.xcore.initsp.p1i8(i8 addrspace(1)* %t, i8* %src) | |
| ret void | |
| } | |
| define void @initpc(i8 addrspace(1)* %t, i8* %src) { | |
| ; CHECK: initpc: | |
| ; CHECK: init t[r0]:pc, r1 | |
| call void @llvm.xcore.initpc.p1i8(i8 addrspace(1)* %t, i8* %src) | |
| ret void | |
| } | |
| define void @initlr(i8 addrspace(1)* %t, i8* %src) { | |
| ; CHECK: initlr: | |
| ; CHECK: init t[r0]:lr, r1 | |
| call void @llvm.xcore.initlr.p1i8(i8 addrspace(1)* %t, i8* %src) | |
| ret void | |
| } | |
| define void @initcp(i8 addrspace(1)* %t, i8* %src) { | |
| ; CHECK: initcp: | |
| ; CHECK: init t[r0]:cp, r1 | |
| call void @llvm.xcore.initcp.p1i8(i8 addrspace(1)* %t, i8* %src) | |
| ret void | |
| } | |
| define void @initdp(i8 addrspace(1)* %t, i8* %src) { | |
| ; CHECK: initdp: | |
| ; CHECK: init t[r0]:dp, r1 | |
| call void @llvm.xcore.initdp.p1i8(i8 addrspace(1)* %t, i8* %src) | |
| ret void | |
| } |