@@ -317,21 +317,30 @@ define void @pr106083_invalidBBarg_fold(i1 %cmp1, i1 %cmp2, i1 %not, ptr %d) {
317317; CHECK-NEXT: [[DOTSI_UNFOLD_PHI_JT0:%.*]] = phi i32 [ 0, [[BB2]] ]
318318; CHECK-NEXT: br label [[BB7_JT0]]
319319; CHECK: sel.si.unfold.true:
320+ ; CHECK-NEXT: br i1 [[CMP1:%.*]], label [[BB9]], label [[SEL_SI_UNFOLD_FALSE_JT1:%.*]]
321+ ; CHECK: sel.si.unfold.true.jt0:
320322; CHECK-NEXT: [[DOTSI_UNFOLD_PHI1:%.*]] = phi i32 [ 0, [[BB2]] ]
321- ; CHECK-NEXT: br i1 [[CMP1:%.* ]], label [[BB9 ]], label [[SEL_SI_UNFOLD_FALSE:%.*]]
323+ ; CHECK-NEXT: br i1 [[CMP1]], label [[BB7_JT0 ]], label [[SEL_SI_UNFOLD_FALSE:%.*]]
322324; CHECK: sel.si.unfold.false:
323325; CHECK-NEXT: [[DOTSI_UNFOLD_PHI2:%.*]] = phi i32 [ 1, [[BB7]] ]
324326; CHECK-NEXT: br label [[BB9]]
327+ ; CHECK: sel.si.unfold.false.jt1:
328+ ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI2_JT1:%.*]] = phi i32 [ 1, [[SEL_SI_UNFOLD_TRUE:%.*]] ]
329+ ; CHECK-NEXT: br label [[BB7_JT1:%.*]]
325330; CHECK: BB7:
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]] ]
331+ ; CHECK-NEXT: [[D_PROMOTED4:%.*]] = phi i16 [ 1, [[SPEC_SELECT_SI_UNFOLD_FALSE:%.*]] ], [ 1, [[SEL_SI_UNFOLD_TRUE ]] ], [ 1, [[SEL_SI_UNFOLD_FALSE]] ]
332+ ; CHECK-NEXT: [[_3:%.*]] = phi i32 [ poison, [[SPEC_SELECT_SI_UNFOLD_FALSE]] ], [ poison , [[SEL_SI_UNFOLD_TRUE ]] ], [ [[DOTSI_UNFOLD_PHI2]], [[SEL_SI_UNFOLD_FALSE]] ]
328333; CHECK-NEXT: switch i32 [[_3]], label [[BB1_BACKEDGE]] [
329334; CHECK-NEXT: i32 0, label [[BB1]]
330335; CHECK-NEXT: i32 1, label [[BB8:%.*]]
331336; CHECK-NEXT: ]
337+ ; CHECK: BB7.jt1:
338+ ; CHECK-NEXT: [[D_PROMOTED4_JT1:%.*]] = phi i16 [ 1, [[SEL_SI_UNFOLD_FALSE_JT1]] ]
339+ ; CHECK-NEXT: [[_3_JT1:%.*]] = phi i32 [ [[DOTSI_UNFOLD_PHI2_JT1]], [[SEL_SI_UNFOLD_FALSE_JT1]] ]
340+ ; CHECK-NEXT: br label [[BB8]]
332341; CHECK: BB7.jt0:
333- ; CHECK-NEXT: [[D_PROMOTED4_JT0:%.*]] = phi i16 [ 0, [[BB1]] ], [ 1, [[SPEC_SELECT_SI_UNFOLD_FALSE_JT0]] ]
334- ; CHECK-NEXT: [[_3_JT0:%.*]] = phi i32 [ 0, [[BB1]] ], [ [[DOTSI_UNFOLD_PHI_JT0]], [[SPEC_SELECT_SI_UNFOLD_FALSE_JT0]] ]
342+ ; CHECK-NEXT: [[D_PROMOTED4_JT0:%.*]] = phi i16 [ 0, [[BB1]] ], [ 1, [[SPEC_SELECT_SI_UNFOLD_FALSE_JT0]] ], [ 1, [[BB7]] ]
343+ ; CHECK-NEXT: [[_3_JT0:%.*]] = phi i32 [ 0, [[BB1]] ], [ [[DOTSI_UNFOLD_PHI_JT0]], [[SPEC_SELECT_SI_UNFOLD_FALSE_JT0]] ], [ [[DOTSI_UNFOLD_PHI1]], [[BB7]] ]
335344; CHECK-NEXT: br label [[BB1]]
336345; CHECK: BB1.backedge:
337346; CHECK-NEXT: br label [[BB1]]
@@ -382,19 +391,27 @@ define void @pr106083_select_dead_uses(i1 %cmp1, i1 %not, ptr %p) {
382391; CHECK-NEXT: [[DOTSI_UNFOLD_PHI_JT0:%.*]] = phi i32 [ 0, [[BB1]] ]
383392; CHECK-NEXT: br label [[SELECT_UNFOLD_JT0]]
384393; CHECK: spec.select.si.unfold.true:
394+ ; CHECK-NEXT: br i1 [[CMP1:%.*]], label [[SELECT_UNFOLD1]], label [[SPEC_SELECT_SI_UNFOLD_FALSE_JT1:%.*]]
395+ ; CHECK: spec.select.si.unfold.true.jt0:
385396; CHECK-NEXT: [[DOTSI_UNFOLD_PHI1:%.*]] = phi i32 [ 0, [[BB1]] ]
386- ; CHECK-NEXT: br i1 [[CMP1:%.* ]], label [[SELECT_UNFOLD1 ]], label [[SPEC_SELECT_SI_UNFOLD_FALSE:%.*]]
397+ ; CHECK-NEXT: br i1 [[CMP1]], label [[SELECT_UNFOLD_JT0 ]], label [[SPEC_SELECT_SI_UNFOLD_FALSE:%.*]]
387398; CHECK: spec.select.si.unfold.false:
388399; CHECK-NEXT: [[DOTSI_UNFOLD_PHI2:%.*]] = phi i32 [ 1, [[SELECT_UNFOLD]] ]
389400; CHECK-NEXT: br label [[SELECT_UNFOLD1]]
401+ ; CHECK: spec.select.si.unfold.false.jt1:
402+ ; CHECK-NEXT: [[DOTSI_UNFOLD_PHI2_JT1:%.*]] = phi i32 [ 1, [[SPEC_SELECT_SI_UNFOLD_TRUE:%.*]] ]
403+ ; CHECK-NEXT: br label [[SELECT_UNFOLD_JT1:%.*]]
390404; CHECK: select.unfold:
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]] ]
405+ ; CHECK-NEXT: [[_2:%.*]] = phi i32 [ poison, [[SPEC_SELECT7_SI_UNFOLD_FALSE:%.*]] ], [ poison , [[SPEC_SELECT_SI_UNFOLD_TRUE ]] ], [ [[DOTSI_UNFOLD_PHI2]], [[SPEC_SELECT_SI_UNFOLD_FALSE]] ]
392406; CHECK-NEXT: switch i32 [[_2]], label [[BB2:%.*]] [
393407; CHECK-NEXT: i32 0, label [[DOTPREHEADER_PREHEADER:%.*]]
394408; CHECK-NEXT: i32 1, label [[DOTLOOPEXIT6]]
395409; CHECK-NEXT: ]
410+ ; CHECK: select.unfold.jt1:
411+ ; CHECK-NEXT: [[_2_JT1:%.*]] = phi i32 [ [[DOTSI_UNFOLD_PHI2_JT1]], [[SPEC_SELECT_SI_UNFOLD_FALSE_JT1]] ]
412+ ; CHECK-NEXT: br label [[DOTLOOPEXIT6]]
396413; CHECK: select.unfold.jt0:
397- ; CHECK-NEXT: [[_2_JT0:%.*]] = phi i32 [ 0, [[DOTLOOPEXIT6]] ], [ [[DOTSI_UNFOLD_PHI_JT0]], [[SPEC_SELECT7_SI_UNFOLD_FALSE_JT0]] ]
414+ ; CHECK-NEXT: [[_2_JT0:%.*]] = phi i32 [ 0, [[DOTLOOPEXIT6]] ], [ [[DOTSI_UNFOLD_PHI_JT0]], [[SPEC_SELECT7_SI_UNFOLD_FALSE_JT0]] ], [ [[DOTSI_UNFOLD_PHI1]], [[SELECT_UNFOLD]] ]
398415; CHECK-NEXT: br label [[DOTPREHEADER_PREHEADER]]
399416; CHECK: .preheader.preheader:
400417; CHECK-NEXT: ret void
0 commit comments