@@ -329,10 +329,9 @@ define void @ne_nsw_nonneg_step(ptr nocapture %A, i32 %n, i32 %s) mustprogress {
329329;
330330; CHECK-LABEL: 'ne_nsw_nonneg_step'
331331; CHECK-NEXT: Determining loop execution counts for: @ne_nsw_nonneg_step
332- ; CHECK-NEXT: Loop %for.body: backedge-taken count is (((-1 * %s) + %n) /u %s)
333- ; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
334- ; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (((-1 * %s) + %n) /u %s)
335- ; CHECK-NEXT: Loop %for.body: Trip multiple is 1
332+ ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
333+ ; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
334+ ; CHECK-NEXT: Loop %for.body: Unpredictable symbolic max backedge-taken count.
336335;
337336entry:
338337 %nonneg_step = icmp sge i32 %s , 0
@@ -442,10 +441,9 @@ define void @ne_nuw_nonneg_step(ptr nocapture %A, i32 %n, i32 %s) mustprogress {
442441;
443442; CHECK-LABEL: 'ne_nuw_nonneg_step'
444443; CHECK-NEXT: Determining loop execution counts for: @ne_nuw_nonneg_step
445- ; CHECK-NEXT: Loop %for.body: backedge-taken count is (((-1 * %s) + %n) /u %s)
446- ; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
447- ; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (((-1 * %s) + %n) /u %s)
448- ; CHECK-NEXT: Loop %for.body: Trip multiple is 1
444+ ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
445+ ; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
446+ ; CHECK-NEXT: Loop %for.body: Unpredictable symbolic max backedge-taken count.
449447;
450448entry:
451449 %nonneg_step = icmp sge i32 %s , 0
@@ -493,6 +491,26 @@ for.end: ; preds = %for.body, %entry
493491 ret void
494492}
495493
494+ define i32 @pr131465 (i1 %x ) mustprogress {
495+ ; CHECK-LABEL: 'pr131465'
496+ ; CHECK-NEXT: Determining loop execution counts for: @pr131465
497+ ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
498+ ; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
499+ ; CHECK-NEXT: Loop %for.body: Unpredictable symbolic max backedge-taken count.
500+ ;
501+ entry:
502+ %inc = zext i1 %x to i32
503+ br label %for.body
504+
505+ for.body:
506+ %indvar = phi i32 [ 2 , %entry ], [ %next , %for.body ]
507+ %next = add nsw i32 %indvar , %inc
508+ %exitcond = icmp eq i32 %next , 2
509+ br i1 %exitcond , label %for.end , label %for.body
510+
511+ for.end:
512+ ret i32 0
513+ }
496514
497515declare void @llvm.assume (i1 )
498516
0 commit comments