[AMDGPU] Add True16 register classes.
[llvm-project.git] / llvm / test / Transforms / JumpThreading / threading_prof1.ll
blob28f1abe2d0948c49a86168e1b3ad0166739c5aee
1 ; RUN: opt -passes=jump-threading -S < %s | FileCheck %s
3 define void @test() {
4 ; CHECK-LABEL: @test()
5 bb:
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]+]]
11 bb2:                                              ; 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]+]]
17 bb5:                                              ; preds = %bb2, %bb
18   %tmp6 = phi i1 [ false, %bb ], [ %tmp4, %bb2 ]
19   br i1 %tmp6, label %bb8, label %bb7, !prof !0
21 bb7:                                              ; preds = %bb5
22   call void @bar()
23   br label %bb8
25 bb8:                                              ; preds = %bb7, %bb5
26   ret void
29 define void @test_single_pred1() {
30 ; CHECK-LABEL: @test_single_pred1()
31 bb:
32   %tmp = call i32 @a()
33   %tmp1 = icmp eq i32 %tmp, 1
34   br i1 %tmp1, label %bb5_1, label %bb2
35 ; CHECK: br i1 %tmp1,{{.*}} !prof ![[PROF1:[0-9]+]]
37 bb5_1:
38   br label %bb5;
40 bb2:
41   %tmp3 = call i32 @b()
42   %tmp4 = icmp ne i32 %tmp3, 1
43   br label %bb5
44 ; CHECK: br i1 %tmp4, {{.*}} !prof ![[PROF2:[0-9]+]]
46 bb5:
47   %tmp6 = phi i1 [ false, %bb5_1 ], [ %tmp4, %bb2 ]
48   br i1 %tmp6, label %bb8, label %bb7, !prof !0
50 bb7:
51   call void @bar()
52   br label %bb8
54 bb8:
55   ret void
58 define void @test_single_pred2() {
59 ; CHECK-LABEL: @test_single_pred2()
60 bb:
61   %tmp = call i32 @a()
62   %tmp1 = icmp eq i32 %tmp, 1
63   br i1 %tmp1, label %bb5_1, label %bb2
64 ; CHECK: br i1 %tmp1,{{.*}} !prof ![[PROF1:[0-9]+]]
66 bb5_1:
67   br label %bb5_2;
69 bb5_2:
70   br label %bb5;
72 bb2:
73   %tmp3 = call i32 @b()
74   %tmp4 = icmp ne i32 %tmp3, 1
75   br label %bb5
76 ; CHECK: br i1 %tmp4, {{.*}} !prof ![[PROF2:[0-9]+]]
78 bb5:
79   %tmp6 = phi i1 [ false, %bb5_2 ], [ %tmp4, %bb2 ]
80   br i1 %tmp6, label %bb8, label %bb7, !prof !0
82 bb7:
83   call void @bar()
84   br label %bb8
86 bb8:
87   ret void
90 declare void @bar()
92 declare i32 @a()
94 declare i32 @b()
96 !0 = !{!"branch_weights", i32 2146410443, i32 1073205}
97 ;CHECK: ![[PROF1]] = !{!"branch_weights", i32 1073205, i32 2146410443}
98 ;CHECK: ![[PROF2]] = !{!"branch_weights", i32 -2147483648, i32 0}