1; RUN: opt -jump-threading -S < %s | FileCheck %s
2; RUN: opt -passes=jump-threading -S < %s | FileCheck %s
3
4define void @test() {
5bb:
6  %tmp = call i32 @a()
7  %tmp1 = icmp eq i32 %tmp, 1
8  br i1 %tmp1, label %bb5, label %bb2
9; CHECK: br i1 %tmp1,{{.*}} !prof ![[PROF1:[0-9]+]]
10
11bb2:                                              ; preds = %bb
12  %tmp3 = call i32 @b()
13  %tmp4 = icmp ne i32 %tmp3, 1
14  br label %bb5
15; CHECK: br i1 %tmp4, {{.*}} !prof ![[PROF2:[0-9]+]]
16
17bb5:                                              ; preds = %bb2, %bb
18  %tmp6 = phi i1 [ false, %bb ], [ %tmp4, %bb2 ]
19  br i1 %tmp6, label %bb8, label %bb7, !prof !0
20
21bb7:                                              ; preds = %bb5
22  call void @bar()
23  br label %bb8
24
25bb8:                                              ; preds = %bb7, %bb5
26  ret void
27}
28
29declare void @bar()
30
31declare i32 @a()
32
33declare i32 @b()
34
35!0 = !{!"branch_weights", i32 2146410443, i32 1073205}
36;CHECK: ![[PROF1]] = !{!"branch_weights", i32 1073205, i32 2146410443}
37;CHECK: ![[PROF2]] = !{!"branch_weights", i32 2146410443, i32 1073205}
38