brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.2 KiB · eb0feb9 Raw
258 lines · plain
1; RUN: llc -mtriple=xcore < %s | FileCheck %s2 3declare ptr addrspace(1) @llvm.xcore.getr.p1(i32 %type)4declare void @llvm.xcore.freer.p1(ptr addrspace(1) %r)5declare i32 @llvm.xcore.in.p1(ptr addrspace(1) %r)6declare i32 @llvm.xcore.int.p1(ptr addrspace(1) %r)7declare i32 @llvm.xcore.inct.p1(ptr addrspace(1) %r)8declare void @llvm.xcore.out.p1(ptr addrspace(1) %r, i32 %value)9declare void @llvm.xcore.outt.p1(ptr addrspace(1) %r, i32 %value)10declare void @llvm.xcore.outct.p1(ptr addrspace(1) %r, i32 %value)11declare void @llvm.xcore.chkct.p1(ptr addrspace(1) %r, i32 %value)12declare i32 @llvm.xcore.testct.p1(ptr addrspace(1) %r)13declare i32 @llvm.xcore.testwct.p1(ptr addrspace(1) %r)14declare void @llvm.xcore.setd.p1(ptr addrspace(1) %r, i32 %value)15declare void @llvm.xcore.setc.p1(ptr addrspace(1) %r, i32 %value)16declare i32 @llvm.xcore.inshr.p1(ptr addrspace(1) %r, i32 %value)17declare i32 @llvm.xcore.outshr.p1(ptr addrspace(1) %r, i32 %value)18declare void @llvm.xcore.clrpt.p1(ptr addrspace(1) %r)19declare void @llvm.xcore.setpt.p1(ptr addrspace(1) %r, i32 %value)20declare i32 @llvm.xcore.getts.p1(ptr addrspace(1) %r)21declare void @llvm.xcore.syncr.p1(ptr addrspace(1) %r)22declare void @llvm.xcore.settw.p1(ptr addrspace(1) %r, i32 %value)23declare void @llvm.xcore.setv.p1(ptr addrspace(1) %r, ptr %p)24declare void @llvm.xcore.setev.p1(ptr addrspace(1) %r, ptr %p)25declare void @llvm.xcore.edu.p1(ptr addrspace(1) %r)26declare void @llvm.xcore.eeu.p1(ptr addrspace(1) %r)27declare void @llvm.xcore.setclk.p1.p1(ptr addrspace(1) %a, ptr addrspace(1) %b)28declare void @llvm.xcore.setrdy.p1.p1(ptr addrspace(1) %a, ptr addrspace(1) %b)29declare void @llvm.xcore.setpsc.p1(ptr addrspace(1) %r, i32 %value)30declare i32 @llvm.xcore.peek.p1(ptr addrspace(1) %r)31declare i32 @llvm.xcore.endin.p1(ptr addrspace(1) %r)32 33define ptr addrspace(1) @getr() {34; CHECK-LABEL: getr:35; CHECK: getr r0, 536	%result = call ptr addrspace(1) @llvm.xcore.getr.p1(i32 5)37	ret ptr addrspace(1) %result38}39 40define void @freer(ptr addrspace(1) %r) {41; CHECK-LABEL: freer:42; CHECK: freer res[r0]43	call void @llvm.xcore.freer.p1(ptr addrspace(1) %r)44	ret void45}46 47define i32 @in(ptr addrspace(1) %r) {48; CHECK-LABEL: in:49; CHECK: in r0, res[r0]50	%result = call i32 @llvm.xcore.in.p1(ptr addrspace(1) %r)51	ret i32 %result52}53 54define i32 @int(ptr addrspace(1) %r) {55; CHECK-LABEL: int:56; CHECK: int r0, res[r0]57	%result = call i32 @llvm.xcore.int.p1(ptr addrspace(1) %r)58	ret i32 %result59}60 61define i32 @inct(ptr addrspace(1) %r) {62; CHECK-LABEL: inct:63; CHECK: inct r0, res[r0]64	%result = call i32 @llvm.xcore.inct.p1(ptr addrspace(1) %r)65	ret i32 %result66}67 68define void @out(ptr addrspace(1) %r, i32 %value) {69; CHECK-LABEL: out:70; CHECK: out res[r0], r171	call void @llvm.xcore.out.p1(ptr addrspace(1) %r, i32 %value)72	ret void73}74 75define void @outt(ptr addrspace(1) %r, i32 %value) {76; CHECK-LABEL: outt:77; CHECK: outt res[r0], r178	call void @llvm.xcore.outt.p1(ptr addrspace(1) %r, i32 %value)79	ret void80}81 82define void @outct(ptr addrspace(1) %r, i32 %value) {83; CHECK-LABEL: outct:84; CHECK: outct res[r0], r185	call void @llvm.xcore.outct.p1(ptr addrspace(1) %r, i32 %value)86	ret void87}88 89define void @outcti(ptr addrspace(1) %r) {90; CHECK-LABEL: outcti:91; CHECK: outct res[r0], 1192	call void @llvm.xcore.outct.p1(ptr addrspace(1) %r, i32 11)93	ret void94}95 96define void @chkct(ptr addrspace(1) %r, i32 %value) {97; CHECK-LABEL: chkct:98; CHECK: chkct res[r0], r199	call void @llvm.xcore.chkct.p1(ptr addrspace(1) %r, i32 %value)100	ret void101}102 103define void @chkcti(ptr addrspace(1) %r) {104; CHECK-LABEL: chkcti:105; CHECK: chkct res[r0], 11106	call void @llvm.xcore.chkct.p1(ptr addrspace(1) %r, i32 11)107	ret void108}109 110define void @setd(ptr addrspace(1) %r, i32 %value) {111; CHECK-LABEL: setd:112; CHECK: setd res[r0], r1113	call void @llvm.xcore.setd.p1(ptr addrspace(1) %r, i32 %value)114	ret void115}116 117define void @setc(ptr addrspace(1) %r, i32 %value) {118; CHECK-LABEL: setc:119; CHECK: setc res[r0], r1120	call void @llvm.xcore.setc.p1(ptr addrspace(1) %r, i32 %value)121	ret void122}123 124define void @setci(ptr addrspace(1) %r) {125; CHECK-LABEL: setci:126; CHECK: setc res[r0], 2127	call void @llvm.xcore.setc.p1(ptr addrspace(1) %r, i32 2)128	ret void129}130 131define i32 @inshr(i32 %value, ptr addrspace(1) %r) {132; CHECK-LABEL: inshr:133; CHECK: inshr r0, res[r1]134	%result = call i32 @llvm.xcore.inshr.p1(ptr addrspace(1) %r, i32 %value)135	ret i32 %result136}137 138define i32 @outshr(i32 %value, ptr addrspace(1) %r) {139; CHECK-LABEL: outshr:140; CHECK: outshr res[r1], r0141	%result = call i32 @llvm.xcore.outshr.p1(ptr addrspace(1) %r, i32 %value)142	ret i32 %result143}144 145define void @clrpt(ptr addrspace(1) %r) {146; CHECK-LABEL: clrpt:147; CHECK: clrpt res[r0]148	call void @llvm.xcore.clrpt.p1(ptr addrspace(1) %r)149	ret void150}151 152define void @setpt(ptr addrspace(1) %r, i32 %value) {153; CHECK-LABEL: setpt:154; CHECK: setpt res[r0], r1155	call void @llvm.xcore.setpt.p1(ptr addrspace(1) %r, i32 %value)156	ret void157}158 159define i32 @getts(ptr addrspace(1) %r) {160; CHECK-LABEL: getts:161; CHECK: getts r0, res[r0]162	%result = call i32 @llvm.xcore.getts.p1(ptr addrspace(1) %r)163	ret i32 %result164}165 166define void @syncr(ptr addrspace(1) %r) {167; CHECK-LABEL: syncr:168; CHECK: syncr res[r0]169	call void @llvm.xcore.syncr.p1(ptr addrspace(1) %r)170	ret void171}172 173define void @settw(ptr addrspace(1) %r, i32 %value) {174; CHECK-LABEL: settw:175; CHECK: settw res[r0], r1176	call void @llvm.xcore.settw.p1(ptr addrspace(1) %r, i32 %value)177	ret void178}179 180define void @setv(ptr addrspace(1) %r, ptr %p) {181; CHECK-LABEL: setv:182; CHECK: mov r11, r1183; CHECK-NEXT: setv res[r0], r11184	call void @llvm.xcore.setv.p1(ptr addrspace(1) %r, ptr %p)185	ret void186}187 188define void @setev(ptr addrspace(1) %r, ptr %p) {189; CHECK-LABEL: setev:190; CHECK: mov r11, r1191; CHECK-NEXT: setev res[r0], r11192	call void @llvm.xcore.setev.p1(ptr addrspace(1) %r, ptr %p)193	ret void194}195 196define void @edu(ptr addrspace(1) %r) {197; CHECK-LABEL: edu:198; CHECK: edu res[r0]199	call void @llvm.xcore.edu.p1(ptr addrspace(1) %r)200	ret void201}202 203define void @eeu(ptr addrspace(1) %r) {204; CHECK-LABEL: eeu:205; CHECK: eeu res[r0]206	call void @llvm.xcore.eeu.p1(ptr addrspace(1) %r)207	ret void208}209 210define void @setclk(ptr addrspace(1) %a, ptr addrspace(1) %b) {211; CHECK: setclk212; CHECK: setclk res[r0], r1213	call void @llvm.xcore.setclk.p1.p1(ptr addrspace(1) %a, ptr addrspace(1) %b)214	ret void215}216 217define void @setrdy(ptr addrspace(1) %a, ptr addrspace(1) %b) {218; CHECK: setrdy219; CHECK: setrdy res[r0], r1220	call void @llvm.xcore.setrdy.p1.p1(ptr addrspace(1) %a, ptr addrspace(1) %b)221	ret void222}223 224define void @setpsc(ptr addrspace(1) %r, i32 %value) {225; CHECK: setpsc226; CHECK: setpsc res[r0], r1227	call void @llvm.xcore.setpsc.p1(ptr addrspace(1) %r, i32 %value)228	ret void229}230 231define i32 @peek(ptr addrspace(1) %r) {232; CHECK-LABEL: peek:233; CHECK: peek r0, res[r0]234	%result = call i32 @llvm.xcore.peek.p1(ptr addrspace(1) %r)235	ret i32 %result236}237 238define i32 @endin(ptr addrspace(1) %r) {239; CHECK-LABEL: endin:240; CHECK: endin r0, res[r0]241	%result = call i32 @llvm.xcore.endin.p1(ptr addrspace(1) %r)242	ret i32 %result243}244 245define i32 @testct(ptr addrspace(1) %r) {246; CHECK-LABEL: testct:247; CHECK: testct r0, res[r0]248	%result = call i32 @llvm.xcore.testct.p1(ptr addrspace(1) %r)249	ret i32 %result250}251 252define i32 @testwct(ptr addrspace(1) %r) {253; CHECK-LABEL: testwct:254; CHECK: testwct r0, res[r0]255	%result = call i32 @llvm.xcore.testwct.p1(ptr addrspace(1) %r)256	ret i32 %result257}258