@@ -858,8 +858,8 @@ define void @or_icmps_empty_metadata(i32 %x, i32 %y, ptr %p) {
858858; CHECK-NEXT: entry:
859859; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
860860; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
861- ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 true, i1 [[EXPENSIVE]]
862- ; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[MORE_RARE:%.*]]
861+ ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 true, i1 [[EXPENSIVE]], !prof [[PROF25:![0-9]+]]
862+ ; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[MORE_RARE:%.*]], !prof [[PROF25]]
863863; CHECK: more_rare:
864864; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
865865; CHECK-NEXT: br label [[EXIT]]
@@ -956,8 +956,8 @@ define void @and_icmps_not_that_harmful(i32 %x, i32 %y, ptr %p) {
956956; CHECK-NEXT: entry:
957957; CHECK-NEXT: [[EXPECTED_FALSE:%.*]] = icmp sgt i32 [[X:%.*]], -1
958958; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
959- ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_FALSE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF25 :![0-9]+]]
960- ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF25 ]]
959+ ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_FALSE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF26 :![0-9]+]]
960+ ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF26 ]]
961961; CHECK: false:
962962; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
963963; CHECK-NEXT: br label [[EXIT]]
@@ -988,8 +988,8 @@ define void @and_icmps_not_that_harmful_inverted(i32 %x, i32 %y, ptr %p) {
988988; CHECK-NEXT: entry:
989989; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sle i32 [[X:%.*]], -1
990990; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
991- ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF25 ]]
992- ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF25 ]]
991+ ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF26 ]]
992+ ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF26 ]]
993993; CHECK: false:
994994; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
995995; CHECK-NEXT: br label [[EXIT]]
@@ -1019,8 +1019,8 @@ define void @and_icmps_useful(i32 %x, i32 %y, ptr %p) {
10191019; CHECK-NEXT: entry:
10201020; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
10211021; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
1022- ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF26 :![0-9]+]]
1023- ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF26 ]]
1022+ ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF27 :![0-9]+]]
1023+ ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF27 ]]
10241024; CHECK: false:
10251025; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
10261026; CHECK-NEXT: br label [[EXIT]]
@@ -1050,8 +1050,8 @@ define void @and_icmps_useful_inverted(i32 %x, i32 %y, ptr %p) {
10501050; CHECK-NEXT: entry:
10511051; CHECK-NEXT: [[EXPECTED_FALSE:%.*]] = icmp sle i32 [[X:%.*]], -1
10521052; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
1053- ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_FALSE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF26 ]]
1054- ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF26 ]]
1053+ ; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_FALSE]], i1 [[EXPENSIVE]], i1 false, !prof [[PROF27 ]]
1054+ ; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF27 ]]
10551055; CHECK: false:
10561056; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
10571057; CHECK-NEXT: br label [[EXIT]]
@@ -1093,7 +1093,7 @@ exit:
10931093!16 = !{!"branch_weights" , i32 1 , i32 99 }
10941094!17 = !{!"branch_weights" , i32 98 , i32 1 }
10951095!18 = !{!"branch_weights" , i32 1 , i32 98 }
1096- !19 = !{!"branch_weights" , i32 0 , i32 0 }
1096+ !19 = !{!"branch_weights" , i32 5 , i32 7 }
10971097!20 = !{}
10981098
10991099; .
@@ -1129,6 +1129,7 @@ exit:
11291129; CHECK: [[PROF22]] = !{!"branch_weights", i32 197, i32 1}
11301130; CHECK: [[PROF23]] = !{!"branch_weights", i32 100, i32 98}
11311131; CHECK: [[PROF24]] = !{!"branch_weights", i32 101, i32 99}
1132- ; CHECK: [[PROF25]] = !{!"branch_weights", i32 1, i32 197}
1133- ; CHECK: [[PROF26]] = !{!"branch_weights", i32 99, i32 101}
1132+ ; CHECK: [[PROF25]] = !{!"branch_weights", i32 17, i32 7}
1133+ ; CHECK: [[PROF26]] = !{!"branch_weights", i32 1, i32 197}
1134+ ; CHECK: [[PROF27]] = !{!"branch_weights", i32 99, i32 101}
11341135;.
0 commit comments