@@ -329,10 +329,9 @@ define void @ne_nsw_nonneg_step(ptr nocapture %A, i32 %n, i32 %s) mustprogress {
329
329
;
330
330
; CHECK-LABEL: 'ne_nsw_nonneg_step'
331
331
; 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.
336
335
;
337
336
entry:
338
337
%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 {
442
441
;
443
442
; CHECK-LABEL: 'ne_nuw_nonneg_step'
444
443
; 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.
449
447
;
450
448
entry:
451
449
%nonneg_step = icmp sge i32 %s , 0
@@ -493,6 +491,26 @@ for.end: ; preds = %for.body, %entry
493
491
ret void
494
492
}
495
493
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
+ }
496
514
497
515
declare void @llvm.assume (i1 )
498
516
0 commit comments