[LLVM][Alignment] Make functions using log of alignment explicit
[llvm-complete.git] / test / CodeGen / PowerPC / mcount-insertion.ll
blobcbb7947be2198f78a54ded9c20196e6051908103
1 ; RUN: opt -ee-instrument < %s | opt -inline | llc | FileCheck %s
3 ; The run-line mimics how Clang might run the instrumentation passes.
5 target datalayout = "E-m:e-i64:64-n32:64"
6 target triple = "powerpc64-bgq-linux"
9 define void @leaf_function() #0 {
10 entry:
11   ret void
13 ; CHECK-LABEL: leaf_function:
14 ; CHECK: bl mcount
15 ; CHECK-NOT: bl
16 ; CHECK: bl __cyg_profile_func_enter
17 ; CHECK-NOT: bl
18 ; CHECK: bl __cyg_profile_func_exit
19 ; CHECK-NOT: bl
20 ; CHECK: blr
24 define void @root_function() #0 {
25 entry:
26   call void @leaf_function()
27   ret void
29 ; CHECK-LABEL: root_function:
30 ; CHECK: bl mcount
31 ; CHECK-NOT: bl
32 ; CHECK: bl __cyg_profile_func_enter
33 ; CHECK-NOT: bl
35 ; Entry and exit calls, inlined from @leaf_function()
36 ; CHECK: bl __cyg_profile_func_enter
37 ; CHECK-NOT: bl
38 ; CHECK: bl __cyg_profile_func_exit
39 ; CHECK-NOT: bl
41 ; CHECK: bl __cyg_profile_func_exit
42 ; CHECK-NOT: bl
43 ; CHECK: blr
46 attributes #0 = { "instrument-function-entry-inlined"="mcount" "instrument-function-entry"="__cyg_profile_func_enter" "instrument-function-exit"="__cyg_profile_func_exit" }