brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 28f1abe Raw
99 lines · plain
1; RUN: opt -passes=jump-threading -S < %s | FileCheck %s2 3define void @test() {4; CHECK-LABEL: @test()5bb:6  %tmp = call i32 @a()7  %tmp1 = icmp eq i32 %tmp, 18  br i1 %tmp1, label %bb5, label %bb29; CHECK: br i1 %tmp1,{{.*}} !prof ![[PROF1:[0-9]+]]10 11bb2:                                              ; preds = %bb12  %tmp3 = call i32 @b()13  %tmp4 = icmp ne i32 %tmp3, 114  br label %bb515; CHECK: br i1 %tmp4, {{.*}} !prof ![[PROF2:[0-9]+]]16 17bb5:                                              ; preds = %bb2, %bb18  %tmp6 = phi i1 [ false, %bb ], [ %tmp4, %bb2 ]19  br i1 %tmp6, label %bb8, label %bb7, !prof !020 21bb7:                                              ; preds = %bb522  call void @bar()23  br label %bb824 25bb8:                                              ; preds = %bb7, %bb526  ret void27}28 29define void @test_single_pred1() {30; CHECK-LABEL: @test_single_pred1()31bb:32  %tmp = call i32 @a()33  %tmp1 = icmp eq i32 %tmp, 134  br i1 %tmp1, label %bb5_1, label %bb235; CHECK: br i1 %tmp1,{{.*}} !prof ![[PROF1:[0-9]+]]36 37bb5_1:38  br label %bb5;39 40bb2:41  %tmp3 = call i32 @b()42  %tmp4 = icmp ne i32 %tmp3, 143  br label %bb544; CHECK: br i1 %tmp4, {{.*}} !prof ![[PROF2:[0-9]+]]45 46bb5:47  %tmp6 = phi i1 [ false, %bb5_1 ], [ %tmp4, %bb2 ]48  br i1 %tmp6, label %bb8, label %bb7, !prof !049 50bb7:51  call void @bar()52  br label %bb853 54bb8:55  ret void56}57 58define void @test_single_pred2() {59; CHECK-LABEL: @test_single_pred2()60bb:61  %tmp = call i32 @a()62  %tmp1 = icmp eq i32 %tmp, 163  br i1 %tmp1, label %bb5_1, label %bb264; CHECK: br i1 %tmp1,{{.*}} !prof ![[PROF1:[0-9]+]]65 66bb5_1:67  br label %bb5_2;68 69bb5_2:70  br label %bb5;71 72bb2:73  %tmp3 = call i32 @b()74  %tmp4 = icmp ne i32 %tmp3, 175  br label %bb576; CHECK: br i1 %tmp4, {{.*}} !prof ![[PROF2:[0-9]+]]77 78bb5:79  %tmp6 = phi i1 [ false, %bb5_2 ], [ %tmp4, %bb2 ]80  br i1 %tmp6, label %bb8, label %bb7, !prof !081 82bb7:83  call void @bar()84  br label %bb885 86bb8:87  ret void88}89 90declare void @bar()91 92declare i32 @a()93 94declare i32 @b()95 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}99