1; RUN: llc -relocation-model=pic -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s 2 3define i32 @callee() nounwind noinline uwtable "function-instrument"="xray-always" { 4; CHECK-LABEL: callee: 5; CHECK: .Ltmp[[#l:]]: 6; CHECK-NEXT: b .Ltmp[[#l+1]] 7; CHECK-NEXT: nop 8; CHECK-NEXT: std 0, -8(1) 9; CHECK-NEXT: mflr 0 10; CHECK-NEXT: bl __xray_FunctionEntry 11; CHECK-NEXT: nop 12; CHECK-NEXT: mtlr 0 13; CHECK-NEXT: .Ltmp[[#l+1]]: 14 ret i32 0 15; CHECK: .Ltmp[[#]]: 16; CHECK: blr 17; CHECK-NEXT: nop 18; CHECK-NEXT: std 0, -8(1) 19; CHECK-NEXT: mflr 0 20; CHECK-NEXT: bl __xray_FunctionExit 21; CHECK-NEXT: nop 22; CHECK-NEXT: mtlr 0 23} 24 25define i32 @caller() nounwind noinline uwtable "function-instrument"="xray-always" { 26; CHECK-LABEL: caller: 27; CHECK: .Ltmp[[#l:]]: 28; CHECK-NEXT: b .Ltmp[[#l+1]] 29; CHECK-NEXT: nop 30; CHECK-NEXT: std 0, -8(1) 31; CHECK-NEXT: mflr 0 32; CHECK-NEXT: bl __xray_FunctionEntry 33; CHECK-NEXT: nop 34; CHECK-NEXT: mtlr 0 35; CHECK-NEXT: .Ltmp[[#l+1]]: 36 %retval = tail call i32 @callee() 37 ret i32 %retval 38; CHECK: .Ltmp[[#l+2]]: 39; CHECK-NEXT: blr 40; CHECK-NEXT: nop 41; CHECK-NEXT: std 0, -8(1) 42; CHECK-NEXT: mflr 0 43; CHECK-NEXT: bl __xray_FunctionExit 44; CHECK-NEXT: nop 45; CHECK-NEXT: mtlr 0 46} 47