[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / test / DebugInfo / AArch64 / call-site-info-output.ll
blob17d9f7f18762830a0ca9f79318b1b80721847e0e
1 ; RUN: llc -emit-call-site-info -mtriple aarch64-linux-gnu -debug-entry-values %s -o - -stop-before=finalize-isel | FileCheck %s
2 ; Verify that Selection DAG knows how to recognize simple function parameter forwarding registers.
3 ; Produced from:
4 ; extern int fn1(int,int,int);
5 ; int fn2(int a, int b, int c) {
6 ;   int local = fn1(a+b, c, 10);
7 ;   if (local > 10)
8 ;     return local + 10;
9 ;   return local;
10 ; }
11 ; clang -g -O2 -target aarch64-linux-gnu -S -emit-llvm %s
12 ; CHECK: callSites:
13 ; CHECK-NEXT:   - { bb: {{.*}}, offset: {{.*}}, fwdArgRegs:
14 ; CHECK-NEXT:       - { arg: 0, reg: '$w0' }
15 ; CHECK-NEXT:       - { arg: 1, reg: '$w1' }
16 ; CHECK-NEXT:       - { arg: 2, reg: '$w2' } }
18 ; ModuleID = 'call-site-info-output.c'
19 source_filename = "call-site-info-output.c"
20 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
21 target triple = "aarch64-unknown-linux-gnu"
23 ; Function Attrs: nounwind
24 define dso_local i32 @fn2(i32 %a, i32 %b, i32 %c) local_unnamed_addr{
25 entry:
26   %add = add nsw i32 %b, %a
27   %call = tail call i32 @fn1(i32 %add, i32 %c, i32 10)
28   %cmp = icmp sgt i32 %call, 10
29   %add1 = add nsw i32 %call, 10
30   %retval.0 = select i1 %cmp, i32 %add1, i32 %call
31   ret i32 %retval.0
34 declare dso_local i32 @fn1(i32, i32, i32) local_unnamed_addr
36 ; Function Attrs: nounwind readnone speculatable willreturn
37 declare void @llvm.dbg.value(metadata, metadata, metadata)
39 !llvm.ident = !{!0}
41 !0 = !{!"clang version 10.0.0"}