brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 46d0b97 Raw
55 lines · plain
1; RUN: llc < %s -mtriple=xcore | FileCheck %s2 3define void @_Z1fz(...) {4entry:5; CHECK-LABEL: _Z1fz:6; CHECK: extsp 37; CHECK: stw r[[REG:[0-3]{1,1}]]8; CHECK: , sp[[[REG]]]9; CHECK: stw r[[REG:[0-3]{1,1}]]10; CHECK: , sp[[[REG]]]11; CHECK: stw r[[REG:[0-3]{1,1}]]12; CHECK: , sp[[[REG]]]13; CHECK: stw r[[REG:[0-3]{1,1}]]14; CHECK: , sp[[[REG]]]15; CHECK: ldaw sp, sp[3]16; CHECK: retsp 017  ret void18}19 20 21declare void @llvm.va_start(ptr) nounwind22declare void @llvm.va_end(ptr) nounwind23declare void @f(i32) nounwind24define void @test_vararg(...) nounwind {25entry:26; CHECK-LABEL: test_vararg27; CHECK: extsp 628; CHECK: stw lr, sp[1]29; CHECK-DAG: stw r3, sp[6]30; CHECK-DAG: stw r0, sp[3]31; CHECK-DAG: stw r1, sp[4]32; CHECK-DAG: stw r2, sp[5]33; CHECK: ldaw r0, sp[3]34; CHECK: stw r0, sp[2]35  %list = alloca ptr, align 436  call void @llvm.va_start(ptr %list)37  br label %for.cond38 39; CHECK-LABEL: .LBB1_140; CHECK: ldw r0, sp[2]41; CHECK: add r1, r0, 442; CHECK: stw r1, sp[2]43; CHECK: ldw r0, r0[0]44; CHECK: bl f45; CHECK: bu .LBB1_146for.cond:47  %0 = va_arg ptr %list, i3248  call void @f(i32 %0)49  br label %for.cond50 51  call void @llvm.va_end(ptr %list)52  ret void53}54 55