; RUN: opt < %s -skip-partial-inlining-cost-analysis -partial-inliner -S | FileCheck %s ; RUN: opt < %s -skip-partial-inlining-cost-analysis -passes=partial-inliner -S | FileCheck %s define i32 @Func(i1 %cond, i32* align 4 %align.val) !prof !1 { ; CHECK: @Func({{.*}}) !prof [[REMAINCOUNT:![0-9]+]] entry: br i1 %cond, label %if.then, label %return if.then: ; Dummy store to have more than 0 uses store i32 10, i32* %align.val, align 4 br label %return return: ; preds = %entry ret i32 0 } define internal i32 @Caller1(i1 %cond, i32* align 2 %align.val) !prof !3{ entry: ; CHECK-LABEL: @Caller1 ; CHECK: br ; CHECK: call void @Func.1. ; CHECK: br ; CHECK: call void @Func.1. %val = call i32 @Func(i1 %cond, i32* %align.val) %val2 = call i32 @Func(i1 %cond, i32* %align.val) ret i32 %val } define internal i32 @Caller2(i1 %cond, i32* align 2 %align.val) !prof !2{ entry: ; CHECK-LABEL: @Caller2 ; CHECK: br ; CHECK: call void @Func.1. %val = call i32 @Func(i1 %cond, i32* %align.val) ret i32 %val } ; CHECK: [[REMAINCOUNT]] = !{!"function_entry_count", i64 150} !1 = !{!"function_entry_count", i64 200} !2 = !{!"function_entry_count", i64 10} !3 = !{!"function_entry_count", i64 20}