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