1*c15c68abSDjordje Todorovic; RUN: llc -emit-call-site-info -mtriple arm-linux-gnu -debug-entry-values %s -o - -stop-before=finalize-isel | FileCheck %s 202682498SNikola Prica; Verify that Selection DAG knows how to recognize simple function parameter forwarding registers. 302682498SNikola Prica; Produced from: 402682498SNikola Prica; extern int fn1(int,int,int); 502682498SNikola Prica; int fn2(int a, int b, int c) { 602682498SNikola Prica; int local = fn1(a+b, c, 10); 702682498SNikola Prica; if (local > 10) 802682498SNikola Prica; return local + 10; 902682498SNikola Prica; return local; 1002682498SNikola Prica; } 1102682498SNikola Prica; clang -g -O2 -target arm-linux-gnu -S -emit-llvm %s 1202682498SNikola Prica; CHECK: callSites: 1302682498SNikola Prica; CHECK-NEXT: - { bb: {{.*}}, offset: {{.*}}, fwdArgRegs: 1402682498SNikola Prica; CHECK-NEXT: - { arg: 0, reg: '$r0' } 1502682498SNikola Prica; CHECK-NEXT: - { arg: 1, reg: '$r1' } 1602682498SNikola Prica; CHECK-NEXT: - { arg: 2, reg: '$r2' } } 1702682498SNikola Prica 1802682498SNikola Prica; ModuleID = 'call-site-info-output.c' 1902682498SNikola Pricasource_filename = "call-site-info-output.c" 2002682498SNikola Pricatarget datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" 2102682498SNikola Pricatarget triple = "armv4t-unknown-linux-gnu" 2202682498SNikola Prica 2302682498SNikola Prica; Function Attrs: nounwind 2402682498SNikola Pricadefine dso_local arm_aapcscc i32 @fn2(i32 %a, i32 %b, i32 %c) { 2502682498SNikola Pricaentry: 2602682498SNikola Prica %add = add nsw i32 %b, %a 2702682498SNikola Prica %call = tail call arm_aapcscc i32 @fn1(i32 %add, i32 %c, i32 10) 2802682498SNikola Prica %cmp = icmp sgt i32 %call, 10 2902682498SNikola Prica %add1 = select i1 %cmp, i32 %c, i32 0 3002682498SNikola Prica %retval.0 = add nsw i32 %add1, %call 3102682498SNikola Prica ret i32 %retval.0 3202682498SNikola Prica} 3302682498SNikola Prica 3402682498SNikola Pricadeclare dso_local arm_aapcscc i32 @fn1(i32, i32, i32) local_unnamed_addr 3502682498SNikola Prica 3602682498SNikola Prica; Function Attrs: nounwind readnone speculatable willreturn 3702682498SNikola Pricadeclare void @llvm.dbg.value(metadata, metadata, metadata) 3802682498SNikola Prica 3902682498SNikola Prica!llvm.ident = !{!0} 4002682498SNikola Prica 4102682498SNikola Prica!0 = !{!"clang version 10.0.0"} 42