42 lines · plain
1; RUN: llc < %s | FileCheck %s2; RUN: llc --fast-isel < %s | FileCheck %s3target datalayout = "E-m:e-i64:64-n32:64"4target triple = "powerpc64-unknown-linux-gnu"5 6; Function Attrs: nounwind7define void @tail() local_unnamed_addr #0 {8entry:9 tail call void @foo() #110 ret void11 12; CHECK-LABEL: @tail13; CHECK: ld [[FD:[0-9]+]], .LC0@toc@l({{[0-9]+}})14; CHECK: ld [[ADDR:[0-9]+]], 0([[FD]])15; CHECK: mtctr [[ADDR]]16; CHECK: bctrl17; CHECK-NOT: bl foo18; CHECK: blr19}20 21define void @notail() local_unnamed_addr #0 {22entry:23 call void @foo() #124 ret void25 26; CHECK-LABEL: @notail27; CHECK: ld [[FD:[0-9]+]], .LC0@toc@l({{[0-9]+}})28; CHECK: ld [[ADDR:[0-9]+]], 0([[FD]])29; CHECK: mtctr [[ADDR]]30; CHECK: bctrl31; CHECK-NOT: bl foo32; CHECK: blr33}34 35; CHECK: .tc foo36 37declare void @foo() local_unnamed_addr38 39attributes #0 = { nounwind "target-cpu"="ppc64" "target-features"="+longcall" }40attributes #1 = { nounwind }41 42