1; RUN: llc < %s | FileCheck %s 2; RUN: llc --fast-isel < %s | FileCheck %s 3target datalayout = "E-m:e-i64:64-n32:64" 4target triple = "powerpc64-unknown-linux-gnu" 5 6; Function Attrs: nounwind 7define void @tail() local_unnamed_addr #0 { 8entry: 9 tail call void @foo() #1 10 ret void 11 12; CHECK-LABEL: @tail 13; CHECK: ld [[FD:[0-9]+]], .LC0@toc@l({{[0-9]+}}) 14; CHECK: ld [[ADDR:[0-9]+]], 0([[FD]]) 15; CHECK: mtctr [[ADDR]] 16; CHECK: bctrl 17; CHECK-NOT: bl foo 18; CHECK: blr 19} 20 21define void @notail() local_unnamed_addr #0 { 22entry: 23 call void @foo() #1 24 ret void 25 26; CHECK-LABEL: @notail 27; CHECK: ld [[FD:[0-9]+]], .LC0@toc@l({{[0-9]+}}) 28; CHECK: ld [[ADDR:[0-9]+]], 0([[FD]]) 29; CHECK: mtctr [[ADDR]] 30; CHECK: bctrl 31; CHECK-NOT: bl foo 32; CHECK: blr 33} 34 35; CHECK: .tc foo 36 37declare void @foo() local_unnamed_addr 38 39attributes #0 = { nounwind "target-cpu"="ppc64" "target-features"="+longcall" } 40attributes #1 = { nounwind } 41 42