74 lines · plain
1; RUN: llc < %s -mtriple=xcore | FileCheck %s2 3; CHECK-LABEL: f0Test4; CHECK: entsp 15; CHECK: bl f06; CHECK: retsp 17%struct.st0 = type { [0 x i32] }8declare void @f0(ptr) nounwind9define void @f0Test(ptr byval(%struct.st0) %s0) nounwind {10entry:11 call void @f0(ptr %s0) nounwind12 ret void13}14 15; CHECK-LABEL: f1Test16; CHECK: entsp 1317; CHECK: stw r4, sp[12]18; CHECK: stw r5, sp[11]19; CHECK: mov r4, r020; CHECK: ldaw r5, sp[1]21; CHECK: ldc r2, 4022; CHECK: mov r0, r523; CHECK: bl __memcpy_424; CHECK: mov r0, r525; CHECK: bl f126; CHECK: mov r0, r427; CHECK: ldw r5, sp[11]28; CHECK: ldw r4, sp[12]29; CHECK: retsp 1330%struct.st1 = type { [10 x i32] }31declare void @f1(ptr) nounwind32define i32 @f1Test(i32 %i, ptr byval(%struct.st1) %s1) nounwind {33entry:34 call void @f1(ptr %s1) nounwind35 ret i32 %i36}37 38; CHECK-LABEL: f2Test39; CHECK: extsp 440; CHECK: stw lr, sp[1]41; CHECK: mov r11, r142; CHECK-DAG: stw r2, sp[3]43; CHECK-DAG: stw r3, sp[4]44; CHECK: ldw r0, r0[0]45; CHECK: stw r0, sp[2]46; CHECK: ldaw r1, sp[2]47; CHECK: mov r0, r1148; CHECK: bl f249; CHECK: ldw lr, sp[1]50; CHECK: ldaw sp, sp[4]51; CHECK: retsp 052%struct.st2 = type { i32 }53declare void @f2(i32, ptr) nounwind54define void @f2Test(ptr byval(%struct.st2) %s2, i32 %i, ...) nounwind {55entry:56 call void @f2(i32 %i, ptr %s2)57 ret void58}59 60; CHECK-LABEL: f3Test61; CHECK: entsp 262; CHECK: ldc r1, 063; CHECK: ld8u r2, r0[r1]64; CHECK: ldaw r0, sp[1]65; CHECK: st8 r2, r0[r1]66; CHECK: bl f67; CHECK: retsp 268declare void @f3(ptr) nounwind69define void @f3Test(ptr byval(i8) %v) nounwind {70entry:71 call void @f3(ptr %v) nounwind72 ret void73}74