; Test proper insertion of mcount instrumentation ; ; RUN: llc < %s -mtriple=s390x-linux-gnu -verify-machineinstrs -o - | FileCheck %s ; ; CHECK: # %bb.0: ; CHECK-NEXT: stg %r14, 8(%r15) ; CHECK-NEXT: brasl %r14, mcount@PLT ; CHECK-NEXT: lg %r14, 8(%r15) define dso_local signext i32 @fib(i32 noundef signext %n) #0 { entry: %n.addr = alloca i32, align 4 store i32 %n, ptr %n.addr, align 4 %0 = load i32, ptr %n.addr, align 4 %cmp = icmp sle i32 %0, 1 br i1 %cmp, label %cond.true, label %cond.false cond.true: ; preds = %entry br label %cond.end cond.false: ; preds = %entry %1 = load i32, ptr %n.addr, align 4 %sub = sub nsw i32 %1, 1 %call = call signext i32 @fib(i32 noundef signext %sub) %2 = load i32, ptr %n.addr, align 4 %sub1 = sub nsw i32 %2, 2 %call2 = call signext i32 @fib(i32 noundef signext %sub1) %add = add nsw i32 %call, %call2 br label %cond.end cond.end: ; preds = %cond.false, %cond.true %cond = phi i32 [ 1, %cond.true ], [ %add, %cond.false ] ret i32 %cond } attributes #0 = { "instrument-function-entry-inlined"="mcount" }