1 ; RUN: opt -simplifycfg -S -o - < %s | FileCheck %s
3 declare void @helper(i32)
5 define void @test1(i1 %a, i1 %b) {
8 br i1 %a, label %Y, label %X, !prof !0
9 ; CHECK: br i1 %or.cond, label %Z, label %Y, !prof !0
13 br i1 %c, label %Z, label %Y, !prof !1
16 call void @helper(i32 0)
20 call void @helper(i32 1)
24 define void @test2(i1 %a, i1 %b) {
27 br i1 %a, label %X, label %Y, !prof !1
28 ; CHECK: br i1 %or.cond, label %Z, label %Y, !prof !1
33 br i1 %c, label %Z, label %Y, !prof !2
36 call void @helper(i32 0)
40 call void @helper(i32 1)
44 define void @test3(i1 %a, i1 %b) {
48 br i1 %a, label %X, label %Y, !prof !1
52 br i1 %c, label %Z, label %Y
55 call void @helper(i32 0)
59 call void @helper(i32 1)
63 define void @test4(i1 %a, i1 %b) {
67 br i1 %a, label %X, label %Y
71 br i1 %c, label %Z, label %Y, !prof !1
74 call void @helper(i32 0)
78 call void @helper(i32 1)
82 !0 = metadata !{metadata !"branch_weights", i32 3, i32 5}
83 !1 = metadata !{metadata !"branch_weights", i32 1, i32 1}
84 !2 = metadata !{metadata !"branch_weights", i32 1, i32 2}
86 ; CHECK: !0 = metadata !{metadata !"branch_weights", i32 5, i32 11}
87 ; CHECK: !1 = metadata !{metadata !"branch_weights", i32 1, i32 5}