|  | ; Test that we annotate entire program's summary to IR. | 
|  | ; RUN: opt -S %s -passes=sample-profile -sample-profile-file=%S/Inputs/summary.prof | FileCheck %s | 
|  | ; RUN: opt -S %s -passes=sample-profile -sample-profile-file=%S/Inputs/summary.prof | opt -S -passes=sample-profile -sample-profile-file=%S/Inputs/summary.prof | FileCheck %s | 
|  |  | 
|  | define i32 @bar() #0 !dbg !1 { | 
|  | entry: | 
|  | ret i32 1, !dbg !2 | 
|  | } | 
|  |  | 
|  | define i32 @baz() !dbg !3 { | 
|  | entry: | 
|  | %call = call i32 @bar(), !dbg !4 | 
|  | ret i32 %call, !dbg !5 | 
|  | } | 
|  |  | 
|  | ; CHECK-DAG: {{![0-9]+}} = !{i32 1, !"ProfileSummary", {{![0-9]+}}} | 
|  | ; CHECK-DAG: {{![0-9]+}} = !{!"TotalCount", i64 900} | 
|  | ; CHECK-DAG: {{![0-9]+}} = !{!"NumCounts", i64 5} | 
|  | ; CHECK-DAG: {{![0-9]+}} = !{!"NumFunctions", i64 3} | 
|  | ; CHECK-DAG: {{![0-9]+}} = !{!"MaxFunctionCount", i64 3} | 
|  |  | 
|  | !1 = distinct !DISubprogram(name: "bar") | 
|  | !2 = !DILocation(line: 2, scope: !2) | 
|  | !3 = distinct !DISubprogram(name: "baz") | 
|  | !4 = !DILocation(line: 1, scope: !4) | 
|  | !5 = !DILocation(line: 2, scope: !5) |