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