xref: /llvm-project/llvm/test/Transforms/CodeExtractor/PartialInlineEntryUpdate.ll (revision bbbbbfbdcb1ab1ba9857138dfa0f2355da8e4499)
1; RUN: opt < %s -skip-partial-inlining-cost-analysis -passes=partial-inliner -S  | FileCheck %s
2
3define i32 @Func(i1 %cond, ptr align 4 %align.val) !prof !1 {
4; CHECK: @Func({{.*}}) !prof [[REMAINCOUNT:![0-9]+]]
5entry:
6  br i1 %cond, label %if.then, label %return
7if.then:
8  ; Dummy store to have more than 0 uses
9  store i32 10, ptr %align.val, align 4
10  br label %return
11return:             ; preds = %entry
12  ret i32 0
13}
14
15define internal i32 @Caller1(i1 %cond, ptr align 2 %align.val) !prof !3{
16entry:
17; CHECK-LABEL: @Caller1
18; CHECK: br
19; CHECK: call void @Func.1.
20; CHECK: br
21; CHECK: call void @Func.1.
22  %val = call i32 @Func(i1 %cond, ptr %align.val)
23  %val2 = call i32 @Func(i1 %cond, ptr %align.val)
24  ret i32 %val
25}
26
27define internal i32 @Caller2(i1 %cond, ptr align 2 %align.val) !prof !2{
28entry:
29; CHECK-LABEL: @Caller2
30; CHECK: br
31; CHECK: call void @Func.1.
32  %val = call i32 @Func(i1 %cond, ptr %align.val)
33  ret i32 %val
34}
35
36; CHECK: [[REMAINCOUNT]] = !{!"function_entry_count", i64 150}
37!1 = !{!"function_entry_count", i64 200}
38!2 = !{!"function_entry_count", i64 10}
39!3 = !{!"function_entry_count", i64 20}
40
41