brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 6674f8e Raw
94 lines · plain
1; RUN: llc -mtriple=xcore < %s | FileCheck %s2 3declare i32 @llvm.xcore.int.p1(ptr addrspace(1) %r)4declare i32 @llvm.xcore.inct.p1(ptr addrspace(1) %r)5declare i32 @llvm.xcore.testct.p1(ptr addrspace(1) %r)6declare i32 @llvm.xcore.testwct.p1(ptr addrspace(1) %r)7declare i32 @llvm.xcore.getts.p1(ptr addrspace(1) %r)8declare void @llvm.xcore.outt.p1(ptr addrspace(1) %r, i32 %value)9declare void @llvm.xcore.outct.p1(ptr addrspace(1) %r, i32 %value)10declare void @llvm.xcore.chkct.p1(ptr addrspace(1) %r, i32 %value)11declare void @llvm.xcore.setpt.p1(ptr addrspace(1) %r, i32 %value)12 13define i32 @int(ptr addrspace(1) %r) nounwind {14; CHECK-LABEL: int:15; CHECK: int r0, res[r0]16; CHECK-NEXT: retsp 017	%result = call i32 @llvm.xcore.int.p1(ptr addrspace(1) %r)18	%trunc = and i32 %result, 25519	ret i32 %trunc20}21 22define i32 @inct(ptr addrspace(1) %r) nounwind {23; CHECK-LABEL: inct:24; CHECK: inct r0, res[r0]25; CHECK-NEXT: retsp 026	%result = call i32 @llvm.xcore.inct.p1(ptr addrspace(1) %r)27	%trunc = and i32 %result, 25528	ret i32 %trunc29}30 31define i32 @testct(ptr addrspace(1) %r) nounwind {32; CHECK-LABEL: testct:33; CHECK: testct r0, res[r0]34; CHECK-NEXT: retsp 035	%result = call i32 @llvm.xcore.testct.p1(ptr addrspace(1) %r)36	%trunc = and i32 %result, 137	ret i32 %trunc38}39 40define i32 @testwct(ptr addrspace(1) %r) nounwind {41; CHECK-LABEL: testwct:42; CHECK: testwct r0, res[r0]43; CHECK-NEXT: retsp 044	%result = call i32 @llvm.xcore.testwct.p1(ptr addrspace(1) %r)45	%trunc = and i32 %result, 746	ret i32 %trunc47}48 49define i32 @getts(ptr addrspace(1) %r) nounwind {50; CHECK-LABEL: getts:51; CHECK: getts r0, res[r0]52; CHECK-NEXT: retsp 053	%result = call i32 @llvm.xcore.getts.p1(ptr addrspace(1) %r)54	%trunc = and i32 %result, 6553555	ret i32 %result56}57 58define void @outt(ptr addrspace(1) %r, i32 %value) nounwind {59; CHECK-LABEL: outt:60; CHECK-NOT: zext61; CHECK: outt res[r0], r162; CHECK-NEXT: retsp 063	%trunc = and i32 %value, 25564	call void @llvm.xcore.outt.p1(ptr addrspace(1) %r, i32 %trunc)65	ret void66}67 68define void @outct(ptr addrspace(1) %r, i32 %value) nounwind {69; CHECK-LABEL: outct:70; CHECK-NOT: zext71; CHECK: outct res[r0], r172	%trunc = and i32 %value, 25573	call void @llvm.xcore.outct.p1(ptr addrspace(1) %r, i32 %trunc)74	ret void75}76 77define void @chkct(ptr addrspace(1) %r, i32 %value) nounwind {78; CHECK-LABEL: chkct:79; CHECK-NOT: zext80; CHECK: chkct res[r0], r181	%trunc = and i32 %value, 25582	call void @llvm.xcore.chkct.p1(ptr addrspace(1) %r, i32 %trunc)83	ret void84}85 86define void @setpt(ptr addrspace(1) %r, i32 %value) nounwind {87; CHECK-LABEL: setpt:88; CHECK-NOT: zext89; CHECK: setpt res[r0], r190	%trunc = and i32 %value, 6553591	call void @llvm.xcore.setpt.p1(ptr addrspace(1) %r, i32 %trunc)92	ret void93}94