80 lines · plain
1; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s2 3define void @Foo(i32 signext %a, i32 signext %b) #0 {4; CHECK-LABEL: @Foo5; CHECK: cmpw6; CHECK-NEXT: ble 0, [[LABEL:\.[a-zA-Z0-9]+]]7; CHECK-NEXT: .p2align 38; CHECK-NEXT: {{\.[a-zA-Z0-9]+}}:9; CHECK-NEXT: blr10; CHECK-NEXT: nop11; CHECK-NEXT: std 012; CHECK-NEXT: mflr 013; CHECK-NEXT: bl __xray_FunctionExit14; CHECK-NEXT: nop15; CHECK-NEXT: mtlr 016; CHECK-NEXT: blr17; CHECK-NEXT: [[LABEL]]:18entry:19 %cmp = icmp sgt i32 %a, %b20 br i1 %cmp, label %return, label %if.end21 22; CHECK: .p2align 323; CHECK-NEXT: {{\.[a-zA-Z0-9]+}}:24; CHECK-NEXT: blr25; CHECK-NEXT: nop26; CHECK-NEXT: std 027; CHECK-NEXT: mflr 028; CHECK-NEXT: bl __xray_FunctionExit29; CHECK-NEXT: nop30; CHECK-NEXT: mtlr 031; CHECK-NEXT: blr32if.end:33 tail call void @Bar()34 br label %return35 36return:37 ret void38}39 40define void @Foo2(i32 signext %a, i32 signext %b) #0 {41; CHECK-LABEL: @Foo242; CHECK: cmpw43; CHECK-NEXT: bge 0, [[LABEL:\.[a-zA-Z0-9]+]]44; CHECK-NEXT: .p2align 345; CHECK-NEXT: {{\.[a-zA-Z0-9]+}}:46; CHECK-NEXT: blr47; CHECK-NEXT: nop48; CHECK-NEXT: std 049; CHECK-NEXT: mflr 050; CHECK-NEXT: bl __xray_FunctionExit51; CHECK-NEXT: nop52; CHECK-NEXT: mtlr 053; CHECK-NEXT: blr54; CHECK-NEXT: [[LABEL]]:55entry:56 %cmp = icmp slt i32 %a, %b57 br i1 %cmp, label %return, label %if.end58 59; CHECK: .p2align 360; CHECK-NEXT: {{\.[a-zA-Z0-9]+}}:61; CHECK-NEXT: blr62; CHECK-NEXT: nop63; CHECK-NEXT: std 064; CHECK-NEXT: mflr 065; CHECK-NEXT: bl __xray_FunctionExit66; CHECK-NEXT: nop67; CHECK-NEXT: mtlr 068; CHECK-NEXT: blr69if.end:70 tail call void @Bar()71 br label %return72 73return:74 ret void75}76 77declare void @Bar()78 79attributes #0 = { "function-instrument"="xray-always" }80