Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / Analysis / BlockFrequencyInfo / precision.ll
blob7408d002d065d5b17d03adaa1ee9429a79c8fd3a
1 ; RUN: opt < %s -disable-output -passes="print<block-freq>" 2>&1 | FileCheck %s
2 ; Sanity check precision for small-ish min/max spread.
4 @g = global i32 0
6 ; CHECK-LABEL: block-frequency-info: func0
7 ; CHECK: - entry: float = 1.0, {{.*}}, count = 1000
8 ; CHECK: - cmp0_true: float = 0.4, {{.*}}, count = 400
9 ; CHECK: - cmp0_false: float = 0.6, {{.*}}, count = 600
10 ; CHECK: - cmp1_true: float = 0.1, {{.*}}, count = 100
11 ; CHECK: - cmp1_false: float = 0.3, {{.*}}, count = 300
12 ; CHECK: - join: float = 1.0, {{.*}}, count = 1000
14 define void @func0(i32 %a0, i32 %a1) !prof !0 {
15 entry:
16   %cmp0 = icmp ne i32 %a0, 0
17   br i1 %cmp0, label %cmp0_true, label %cmp0_false, !prof !1
19 cmp0_true:
20   store volatile i32 1, ptr @g
21   %cmp1 = icmp ne i32 %a1, 0
22   br i1 %cmp1, label %cmp1_true, label %cmp1_false, !prof !2
24 cmp0_false:
25   store volatile i32 2, ptr @g
26   br label %join
28 cmp1_true:
29   store volatile i32 3, ptr @g
30   br label %join
32 cmp1_false:
33   store volatile i32 4, ptr @g
34   br label %join
36 join:
37   store volatile i32 5, ptr @g
38   ret void
41 !0 = !{!"function_entry_count", i64 1000}
42 !1 = !{!"branch_weights", i32 400, i32 600}
43 !2 = !{!"branch_weights", i32 1, i32 3}