brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · e9860ac Raw
42 lines · plain
1; RUN: llc -mtriple=mipsel -relocation-model=pic -mips-tail-calls=1 < %s | FileCheck %s2 3; CHECK-LABEL: foo6:4; CHECK: %while.body5; CHECK: lw  $25, %call16(foo2)(${{[0-9]+}})6; CHECK: jalr $257; CHECK: %while.end8 9define void @foo6(i32 %n) {10entry:11  %tobool1 = icmp eq i32 %n, 012  br i1 %tobool1, label %while.end, label %while.body13 14while.body:                                       ; preds = %entry, %while.body15  %n.addr.02 = phi i32 [ %dec, %while.body ], [ %n, %entry ]16  %dec = add nsw i32 %n.addr.02, -117  tail call void @foo2()18  %tobool = icmp eq i32 %dec, 019  br i1 %tobool, label %while.end, label %while.body20 21while.end:                                        ; preds = %while.body, %entry22  ret void23}24 25declare void @foo2()26 27; CHECK-LABEL: foo1:28; CHECK: lw $25, %call16(foo2)(${{[0-9]+}})29; CHECK: jalr $2530; CHECK: lw $25, %call16(foo2)(${{[0-9]+}})31; CHECK: jalr $2532; CHECK: lw $25, %call16(foo2)(${{[0-9]+}})33; CHECK: jalr $2534 35define void @foo1() {36entry:37  tail call void @foo2()38  tail call void @foo2()39  tail call void @foo2()40  ret void41}42