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