[InstCombine] Signed saturation tests. NFC
[llvm-complete.git] / test / Transforms / JumpThreading / threading_prof2.ll
blobb14b996f24eaa769e93c3f854bc91cd86328dfeb
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]+]]
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]+]]
16 bb5:                                             
17   %tmp6 = phi i1 [ false, %bb ], [ %tmp4, %bb2 ]
18   br i1 %tmp6, label %bb8, label %bb7, !prof !0
20 bb7:                                            
21   call void @bar()
22   br label %bb9
24 bb8: 
25   call void @foo()
26   br label %bb9
28 bb9:                                           
29   ret void
32 declare void @bar()
34 declare void @foo()
36 declare i32 @a()
38 declare i32 @b()
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}