@@ -412,48 +412,22 @@ return:
412412 ret i32 %retval.0
413413}
414414
415- ; The selects should have freshly calculated branch weights.
415+ ; The 1st select should have branch weights equal to the 1st branch.
416+ ; The 2nd select should have freshly calculated branch weights.
416417
417418define i32 @SimplifyCondBranchToCondBranch (i1 %cmpa , i1 %cmpb ) {
418419; CHECK-LABEL: @SimplifyCondBranchToCondBranch(
419420; CHECK-NEXT: block1:
420- ; CHECK-NEXT: [[BRMERGE:%.*]] = or i1 %cmpa , %cmpb
421- ; CHECK-NEXT: [[DOTMUX:%.*]] = select i1 %cmpa , i32 0, i32 2, !prof !12
422- ; CHECK-NEXT: [[OUTVAL:%.*]] = select i1 [[BRMERGE]], i32 [[DOTMUX]], i32 1, !prof !13
421+ ; CHECK-NEXT: [[BRMERGE:%.*]] = or i1 %cmpb , %cmpa
422+ ; CHECK-NEXT: [[DOTMUX:%.*]] = select i1 %cmpb , i32 0, i32 2
423+ ; CHECK-NEXT: [[OUTVAL:%.*]] = select i1 [[BRMERGE]], i32 [[DOTMUX]], i32 1, !prof !12
423424; CHECK-NEXT: ret i32 [[OUTVAL]]
424425;
425426block1:
426- br i1 %cmpa , label %block3 , label %block2 , !prof !13
427+ br i1 %cmpb , label %block3 , label %block2 , !prof !0
427428
428429block2:
429- br i1 %cmpb , label %block3 , label %exit , !prof !14
430-
431- block3:
432- %cowval = phi i32 [ 2 , %block2 ], [ 0 , %block1 ]
433- br label %exit
434-
435- exit:
436- %outval = phi i32 [ %cowval , %block3 ], [ 1 , %block2 ]
437- ret i32 %outval
438- }
439-
440- ; Swap the operands of the compares to verify that the weights update correctly.
441-
442- define i32 @SimplifyCondBranchToCondBranchSwap (i1 %cmpa , i1 %cmpb ) {
443- ; CHECK-LABEL: @SimplifyCondBranchToCondBranchSwap(
444- ; CHECK-NEXT: block1:
445- ; CHECK-NEXT: [[CMPA_NOT:%.*]] = xor i1 %cmpa, true
446- ; CHECK-NEXT: [[CMPB_NOT:%.*]] = xor i1 %cmpb, true
447- ; CHECK-NEXT: [[BRMERGE:%.*]] = or i1 [[CMPA_NOT]], [[CMPB_NOT]]
448- ; CHECK-NEXT: [[DOTMUX:%.*]] = select i1 [[CMPA_NOT]], i32 0, i32 2, !prof !14
449- ; CHECK-NEXT: [[OUTVAL:%.*]] = select i1 [[BRMERGE]], i32 [[DOTMUX]], i32 1, !prof !15
450- ; CHECK-NEXT: ret i32 [[OUTVAL]]
451- ;
452- block1:
453- br i1 %cmpa , label %block2 , label %block3 , !prof !13
454-
455- block2:
456- br i1 %cmpb , label %exit , label %block3 , !prof !14
430+ br i1 %cmpa , label %block3 , label %exit , !prof !2
457431
458432block3:
459433 %cowval = phi i32 [ 2 , %block2 ], [ 0 , %block1 ]
@@ -478,8 +452,6 @@ exit:
478452!10 = !{!"branch_weights" , i32 672646 , i32 21604207 }
479453!11 = !{!"branch_weights" , i32 6960 , i32 21597248 }
480454!12 = !{!"these_are_not_the_branch_weights_you_are_looking_for" , i32 3 , i32 5 }
481- !13 = !{!"branch_weights" , i32 2 , i32 3 }
482- !14 = !{!"branch_weights" , i32 4 , i32 7 }
483455
484456; CHECK: !0 = !{!"branch_weights", i32 5, i32 11}
485457; CHECK: !1 = !{!"branch_weights", i32 1, i32 5}
@@ -495,8 +467,5 @@ exit:
495467;; treat the weight as an unsigned integer.
496468; CHECK: !10 = !{!"branch_weights", i32 112017436, i32 -735157296}
497469; CHECK: !11 = !{!"branch_weights", i32 3, i32 5}
498- ; CHECK: !12 = !{!"branch_weights", i32 22, i32 12}
499- ; CHECK: !13 = !{!"branch_weights", i32 34, i32 21}
500- ; CHECK: !14 = !{!"branch_weights", i32 33, i32 14}
501- ; CHECK: !15 = !{!"branch_weights", i32 47, i32 8}
470+ ; CHECK: !12 = !{!"branch_weights", i32 14, i32 10}
502471
0 commit comments