@@ -304,25 +304,27 @@ end:
304304define void @pr106083_invalidBBarg_fold (i1 %cmp1 , i1 %cmp2 , i1 %not , ptr %d ) {
305305; CHECK-LABEL: @pr106083_invalidBBarg_fold(
306306; CHECK-NEXT: bb:
307- ; CHECK-NEXT: br i1 [[CMP1:%.*]], label [[BB1:%.*]], label [[SEL_SI_UNFOLD_FALSE:%.*]]
308- ; CHECK: sel.si.unfold.false:
309- ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI1:%.*]] = phi i32 [ 1, [[BB:%.*]] ]
310- ; CHECK-NEXT: br label [[BB1]]
307+ ; CHECK-NEXT: br label [[BB1:%.*]]
311308; CHECK: BB1:
312- ; CHECK-NEXT: [[I:%.*]] = phi i16 [ 0, [[BB1_BACKEDGE:%.*]] ], [ 0, [[BB]] ], [ 1, [[BB7:%.*]] ], [ 0, [[SEL_SI_UNFOLD_FALSE]] ], [ 1, [[BB7_JT0:%.*]] ]
313- ; CHECK-NEXT: [[SEL_SI_UNFOLD_PHI:%.*]] = phi i32 [ [[SEL_SI_UNFOLD_PHI]], [[BB1_BACKEDGE]] ], [ [[SEL_SI_UNFOLD_PHI]], [[BB7]] ], [ 0, [[BB]] ], [ [[DOTSI_UNFOLD_PHI1]], [[SEL_SI_UNFOLD_FALSE]] ], [ [[SEL_SI_UNFOLD_PHI]], [[BB7_JT0]] ]
309+ ; CHECK-NEXT: [[I:%.*]] = phi i16 [ 0, [[BB1_BACKEDGE:%.*]] ], [ 0, [[BB:%.*]] ], [ 1, [[BB9:%.*]] ], [ 1, [[BB7_JT0:%.*]] ]
314310; CHECK-NEXT: br i1 [[NOT:%.*]], label [[BB7_JT0]], label [[BB2:%.*]]
315311; CHECK: BB2:
316312; CHECK-NEXT: store i16 0, ptr [[D:%.*]], align 2
317- ; CHECK-NEXT: br i1 [[CMP2:%.*]], label [[BB7]], label [[SPEC_SELECT_SI_UNFOLD_FALSE_JT0:%.*]]
313+ ; CHECK-NEXT: br i1 [[CMP2:%.*]], label [[BB7:%.* ]], label [[SPEC_SELECT_SI_UNFOLD_FALSE_JT0:%.*]]
318314; CHECK: spec.select.si.unfold.false:
319- ; CHECK-NEXT: br label [[BB7 ]]
315+ ; CHECK-NEXT: br label [[BB9 ]]
320316; CHECK: spec.select.si.unfold.false.jt0:
321317; CHECK-NEXT: [[DOTSI_UNFOLD_PHI_JT0:%.*]] = phi i32 [ 0, [[BB2]] ]
322318; CHECK-NEXT: br label [[BB7_JT0]]
319+ ; CHECK: sel.si.unfold.true:
320+ ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI1:%.*]] = phi i32 [ 0, [[BB2]] ]
321+ ; CHECK-NEXT: br i1 [[CMP1:%.*]], label [[BB9]], label [[SEL_SI_UNFOLD_FALSE:%.*]]
322+ ; CHECK: sel.si.unfold.false:
323+ ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI2:%.*]] = phi i32 [ 1, [[BB7]] ]
324+ ; CHECK-NEXT: br label [[BB9]]
323325; CHECK: BB7:
324- ; CHECK-NEXT: [[D_PROMOTED4:%.*]] = phi i16 [ 1, [[BB2 ]] ], [ 1, [[SPEC_SELECT_SI_UNFOLD_FALSE:%.* ]] ]
325- ; CHECK-NEXT: [[_3:%.*]] = phi i32 [ [[SEL_SI_UNFOLD_PHI]] , [[BB2]] ] , [ poison , [[SPEC_SELECT_SI_UNFOLD_FALSE ]] ]
326+ ; CHECK-NEXT: [[D_PROMOTED4:%.*]] = phi i16 [ 1, [[SPEC_SELECT_SI_UNFOLD_FALSE:%.* ]] ], [ 1, [[BB7]] ], [ 1, [[SEL_SI_UNFOLD_FALSE ]] ]
327+ ; CHECK-NEXT: [[_3:%.*]] = phi i32 [ poison, [[SPEC_SELECT_SI_UNFOLD_FALSE]] ] , [ [[DOTSI_UNFOLD_PHI1]], [[BB7]] ] , [ [[DOTSI_UNFOLD_PHI2]] , [[SEL_SI_UNFOLD_FALSE ]] ]
326328; CHECK-NEXT: switch i32 [[_3]], label [[BB1_BACKEDGE]] [
327329; CHECK-NEXT: i32 0, label [[BB1]]
328330; CHECK-NEXT: i32 1, label [[BB8:%.*]]
@@ -367,24 +369,26 @@ BB8: ; preds = %BB7
367369define void @pr106083_select_dead_uses (i1 %cmp1 , i1 %not , ptr %p ) {
368370; CHECK-LABEL: @pr106083_select_dead_uses(
369371; CHECK-NEXT: bb:
370- ; CHECK-NEXT: br i1 [[CMP1:%.*]], label [[DOTLOOPEXIT6:%.*]], label [[SPEC_SELECT_SI_UNFOLD_FALSE:%.*]]
371- ; CHECK: spec.select.si.unfold.false:
372- ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI1:%.*]] = phi i32 [ 1, [[BB:%.*]] ]
373- ; CHECK-NEXT: br label [[DOTLOOPEXIT6]]
372+ ; CHECK-NEXT: br label [[DOTLOOPEXIT6:%.*]]
374373; CHECK: .loopexit6:
375- ; CHECK-NEXT: [[SPEC_SELECT_SI_UNFOLD_PHI:%.*]] = phi i32 [ [[SPEC_SELECT_SI_UNFOLD_PHI]], [[SELECT_UNFOLD:%.*]] ], [ 0, [[BB]] ], [ [[DOTSI_UNFOLD_PHI1]], [[SPEC_SELECT_SI_UNFOLD_FALSE]] ]
376374; CHECK-NEXT: br i1 [[NOT:%.*]], label [[SELECT_UNFOLD_JT0:%.*]], label [[BB1:%.*]]
377375; CHECK: bb1:
378376; CHECK-NEXT: [[I:%.*]] = load i32, ptr [[P:%.*]], align 4
379377; CHECK-NEXT: [[NOT2:%.*]] = icmp eq i32 0, 0
380- ; CHECK-NEXT: br i1 [[NOT2]], label [[SELECT_UNFOLD]], label [[SPEC_SELECT7_SI_UNFOLD_FALSE_JT0:%.*]]
378+ ; CHECK-NEXT: br i1 [[NOT2]], label [[SELECT_UNFOLD:%.* ]], label [[SPEC_SELECT7_SI_UNFOLD_FALSE_JT0:%.*]]
381379; CHECK: spec.select7.si.unfold.false:
382- ; CHECK-NEXT: br label [[SELECT_UNFOLD ]]
380+ ; CHECK-NEXT: br label [[SELECT_UNFOLD1:%.* ]]
383381; CHECK: spec.select7.si.unfold.false.jt0:
384382; CHECK-NEXT: [[DOTSI_UNFOLD_PHI_JT0:%.*]] = phi i32 [ 0, [[BB1]] ]
385383; CHECK-NEXT: br label [[SELECT_UNFOLD_JT0]]
384+ ; CHECK: spec.select.si.unfold.true:
385+ ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI1:%.*]] = phi i32 [ 0, [[BB1]] ]
386+ ; CHECK-NEXT: br i1 [[CMP1:%.*]], label [[SELECT_UNFOLD1]], label [[SPEC_SELECT_SI_UNFOLD_FALSE:%.*]]
387+ ; CHECK: spec.select.si.unfold.false:
388+ ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI2:%.*]] = phi i32 [ 1, [[SELECT_UNFOLD]] ]
389+ ; CHECK-NEXT: br label [[SELECT_UNFOLD1]]
386390; CHECK: select.unfold:
387- ; CHECK-NEXT: [[_2:%.*]] = phi i32 [ [[SPEC_SELECT_SI_UNFOLD_PHI]] , [[BB1]] ] , [ poison , [[SPEC_SELECT7_SI_UNFOLD_FALSE:%.* ]] ]
391+ ; CHECK-NEXT: [[_2:%.*]] = phi i32 [ poison, [[SPEC_SELECT7_SI_UNFOLD_FALSE:%.*]] ] , [ [[DOTSI_UNFOLD_PHI1]], [[SELECT_UNFOLD]] ] , [ [[DOTSI_UNFOLD_PHI2]] , [[SPEC_SELECT_SI_UNFOLD_FALSE ]] ]
388392; CHECK-NEXT: switch i32 [[_2]], label [[BB2:%.*]] [
389393; CHECK-NEXT: i32 0, label [[DOTPREHEADER_PREHEADER:%.*]]
390394; CHECK-NEXT: i32 1, label [[DOTLOOPEXIT6]]
0 commit comments