20 changes: 10 additions & 10 deletions llvm/test/Analysis/ScalarEvolution/shift-op.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

define void @test0(i32 %init) {
; CHECK-LABEL: Classifying expressions for: @test0
; CHECK: Loop %loop: max backedge-taken count is 32
; CHECK: Loop %loop: constant max backedge-taken count is 32
entry:
br label %loop

Expand All @@ -18,7 +18,7 @@ define void @test0(i32 %init) {

define void @test1(i32 %init) {
; CHECK-LABEL: Classifying expressions for: @test1
; CHECK: Loop %loop: max backedge-taken count is 32
; CHECK: Loop %loop: constant max backedge-taken count is 32
entry:
br label %loop

Expand All @@ -34,7 +34,7 @@ define void @test1(i32 %init) {

define void @test2(i32 %init) {
; CHECK-LABEL: Determining loop execution counts for: @test2
; CHECK: Loop %loop: Unpredictable max backedge-taken count.
; CHECK: Loop %loop: Unpredictable constant max backedge-taken count.

; Unpredictable because %iv could "stabilize" to either -1 or 0,
; depending on %init.
Expand All @@ -53,7 +53,7 @@ define void @test2(i32 %init) {

define void @test3(i32* %init.ptr) {
; CHECK-LABEL: Determining loop execution counts for: @test3
; CHECK: Loop %loop: max backedge-taken count is 32
; CHECK: Loop %loop: constant max backedge-taken count is 32
entry:
%init = load i32, i32* %init.ptr, !range !0
br label %loop
Expand All @@ -70,7 +70,7 @@ define void @test3(i32* %init.ptr) {

define void @test4(i32* %init.ptr) {
; CHECK-LABEL: Classifying expressions for: @test4
; CHECK-LABEL: Loop %loop: max backedge-taken count is 32
; CHECK-LABEL: Loop %loop: constant max backedge-taken count is 32
entry:
%init = load i32, i32* %init.ptr, !range !1
br label %loop
Expand All @@ -87,7 +87,7 @@ define void @test4(i32* %init.ptr) {

define void @test5(i32* %init.ptr) {
; CHECK-LABEL: Determining loop execution counts for: @test5
; CHECK: Loop %loop: Unpredictable max backedge-taken count.
; CHECK: Loop %loop: Unpredictable constant max backedge-taken count.

; %iv will "stabilize" to -1, so this is an infinite loop
entry:
Expand All @@ -106,7 +106,7 @@ define void @test5(i32* %init.ptr) {

define void @test6(i32 %init, i32 %shift.amt) {
; CHECK-LABEL: Determining loop execution counts for: @test6
; CHECK: Loop %loop: Unpredictable max backedge-taken count.
; CHECK: Loop %loop: Unpredictable constant max backedge-taken count.

; Potentially infinite loop, since %shift.amt could be 0
entry:
Expand All @@ -124,7 +124,7 @@ define void @test6(i32 %init, i32 %shift.amt) {

define void @test7(i32 %init) {
; CHECK-LABEL: Classifying expressions for: @test7
; CHECK: Loop %loop: max backedge-taken count is 32
; CHECK: Loop %loop: constant max backedge-taken count is 32

entry:
br label %loop
Expand All @@ -141,7 +141,7 @@ define void @test7(i32 %init) {

define void @test8(i32 %init) {
; CHECK-LABEL: Classifying expressions for: @test8
; CHECK: Loop %loop: Unpredictable max backedge-taken count.
; CHECK: Loop %loop: Unpredictable constant max backedge-taken count.

; In this test case, %iv.test stabilizes to 127, not -1, so the loop
; is infinite.
Expand All @@ -162,7 +162,7 @@ define void @test8(i32 %init) {

define void @test9() {
; CHECK-LABEL: Determining loop execution counts for: @test9
; CHECK: Loop %loop: Unpredictable max backedge-taken count.
; CHECK: Loop %loop: Unpredictable constant max backedge-taken count.

; This is an infinite loop, make sure that it recognized as such.

Expand Down
54 changes: 27 additions & 27 deletions llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ define void @test_lshr() {
; CHECK-NEXT: --> (%iv.lshr /u 2) U: [0,512) S: [0,512) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -33,7 +33,7 @@ define void @test_lshr2() {
; CHECK-NEXT: --> (%iv.lshr /u 16) U: [0,64) S: [0,64) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr2
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -56,7 +56,7 @@ define void @test_ashr_zeros() {
; CHECK-NEXT: --> %iv.ashr.next U: [0,512) S: [0,512) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_zeros
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -78,7 +78,7 @@ define void @test_ashr_ones() {
; CHECK-NEXT: --> %iv.ashr.next U: [-512,0) S: [-512,0) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_ones
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -101,7 +101,7 @@ define void @test_ashr_ones2() {
; CHECK-NEXT: --> %iv.ashr.next U: [-512,0) S: [-512,0) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_ones2
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -125,7 +125,7 @@ define void @test_ashr_unknown(i64 %start) {
; CHECK-NEXT: --> %iv.ashr.next U: [-4611686018427387904,4611686018427387904) S: [-4611686018427387904,4611686018427387904) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_unknown
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -149,7 +149,7 @@ define void @test_ashr_wrong_op(i64 %start) {
; CHECK-NEXT: --> %iv.ashr.next U: [-2,2) S: [-2,2) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_wrong_op
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -172,7 +172,7 @@ define void @test_shl() {
; CHECK-NEXT: --> (2 * %iv.shl) U: [0,-15) S: [-9223372036854775808,9223372036854775793) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_shl
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -199,7 +199,7 @@ define void @test_shl2() {
; CHECK-NEXT: --> (2 * %iv.shl)<nuw><nsw> U: [8,129) S: [8,129) Exits: 128 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_shl2
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -233,7 +233,7 @@ define void @test_shl3(i1 %c) {
; CHECK-NEXT: --> %iv.shl.next U: [0,-3) S: [-9223372036854775808,9223372036854775805) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_shl3
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -266,7 +266,7 @@ define void @test_shl4() {
; CHECK-NEXT: --> (2 * %iv.shl)<nuw> U: [8,-9223372036854775807) S: [-9223372036854775808,9223372036854775801) Exits: -9223372036854775808 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_shl4
; CHECK-NEXT: Loop %loop: backedge-taken count is 60
; CHECK-NEXT: Loop %loop: max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 60
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 61
Expand Down Expand Up @@ -298,7 +298,7 @@ define void @test_shl5() {
; CHECK-NEXT: --> (2 * %iv.shl) U: [0,-7) S: [-9223372036854775808,9223372036854775801) Exits: 0 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_shl5
; CHECK-NEXT: Loop %loop: backedge-taken count is 61
; CHECK-NEXT: Loop %loop: max backedge-taken count is 61
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 61
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 61
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 62
Expand Down Expand Up @@ -332,7 +332,7 @@ define void @test_shl6(i1 %c) {
; CHECK-NEXT: --> %iv.shl.next U: [0,-3) S: [-9223372036854775808,9223372036854775805) Exits: 16 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_shl6
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -365,7 +365,7 @@ define void @test_shl7(i1 %c, i64 %shiftamt) {
; CHECK-NEXT: --> %iv.shl.next U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_shl7
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -418,7 +418,7 @@ define void @unreachable_binop() {
; CHECK-NEXT: --> poison U: full-set S: full-set
; CHECK-NEXT: Determining loop execution counts for: @unreachable_binop
; CHECK-NEXT: Loop %header: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %header: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %header: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %header: Unpredictable predicated backedge-taken count.
;
entry:
Expand Down Expand Up @@ -475,7 +475,7 @@ define void @nonloop_recurrence_2() {
; CHECK-NEXT: --> (1 + %tmp)<nuw> U: [1,-2147483647) S: [1,-2147483647) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @nonloop_recurrence_2
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
bb:
Expand Down Expand Up @@ -509,7 +509,7 @@ define void @test_ashr_tc_positive() {
; CHECK-NEXT: --> %iv.ashr.next U: [0,512) S: [0,512) Exits: 31 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_tc_positive
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -540,7 +540,7 @@ define void @test_ashr_tc_negative() {
; CHECK-NEXT: --> %iv.ashr.next U: [-64,0) S: [-64,0) Exits: -4 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_tc_negative
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -573,7 +573,7 @@ define void @test_ashr_tc_either(i1 %a) {
; CHECK-NEXT: --> %iv.ashr.next U: [-16,16) S: [-16,16) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_tc_either
; CHECK-NEXT: Loop %loop: backedge-taken count is 60
; CHECK-NEXT: Loop %loop: max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 60
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 61
Expand Down Expand Up @@ -605,7 +605,7 @@ define void @test_ashr_zero_shift() {
; CHECK-NEXT: --> %iv.ashr U: [1023,1024) S: [1023,1024) Exits: 1023 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_ashr_zero_shift
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -636,7 +636,7 @@ define void @test_lshr_tc_positive() {
; CHECK-NEXT: --> (%iv.lshr /u 2) U: [31,512) S: [31,512) Exits: 31 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr_tc_positive
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -667,7 +667,7 @@ define void @test_lshr_tc_negative() {
; CHECK-NEXT: --> (%iv.lshr /u 2) U: [7,-128) S: [7,-128) Exits: 7 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr_tc_negative
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -700,7 +700,7 @@ define void @test_lshr_tc_either(i1 %a) {
; CHECK-NEXT: --> (%iv.lshr /u 2) U: [0,-128) S: [0,-128) Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr_tc_either
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -732,7 +732,7 @@ define void @test_lshr_zero_shift() {
; CHECK-NEXT: --> %iv.lshr U: [1023,1024) S: [1023,1024) Exits: 1023 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr_zero_shift
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -764,7 +764,7 @@ define void @test_lshr_power_of_2_start() {
; CHECK-NEXT: --> (%iv.lshr /u 4) U: [1,257) S: [1,257) Exits: 1 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr_power_of_2_start
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -796,7 +796,7 @@ define void @test_lshr_arbitrary_start() {
; CHECK-NEXT: --> (%iv.lshr /u 4) U: [0,240) S: [0,240) Exits: 0 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr_arbitrary_start
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down Expand Up @@ -827,7 +827,7 @@ define void @test_lshr_start_power_of_2_plus_one() {
; CHECK-NEXT: --> (%iv.lshr /u 4) U: [1,257) S: [1,257) Exits: 1 LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @test_lshr_start_power_of_2_plus_one
; CHECK-NEXT: Loop %loop: backedge-taken count is 4
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 5
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/sle.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

; CHECK: @le
; CHECK: Loop %for.body: backedge-taken count is %n
; CHECK: Loop %for.body: max backedge-taken count is 9223372036854775807
; CHECK: Loop %for.body: constant max backedge-taken count is 9223372036854775807

define void @le(i64 %n, double* nocapture %p) nounwind {
entry:
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Analysis/ScalarEvolution/smin-smax-folds.ll
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ define void @smin_simplify_with_guard(i32 %n) {
; CHECK-NEXT: --> {(-1 + %n),+,-1}<nw><%for.body> U: full-set S: full-set Exits: -1 LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @smin_simplify_with_guard
; CHECK-NEXT: Loop %for.body: backedge-taken count is %n
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 2147483647
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483647
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand Down Expand Up @@ -67,7 +67,7 @@ define void @smin_to_smax(i32 %n) {
; CHECK-NEXT: --> {(-1 + %n),+,-1}<nw><%for.body> U: full-set S: full-set Exits: (-1 + (0 smin %n)) LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @smin_to_smax
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((-1 * (0 smin %n)) + %n)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 2147483647
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483647
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-1 * (0 smin %n)) + %n)
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand Down Expand Up @@ -102,7 +102,7 @@ define void @smax_simplify_with_guard(i32 %start, i32 %n) {
; CHECK-NEXT: --> {(1 + %start),+,1}<nw><%loop> U: full-set S: full-set Exits: (1 + %n) LoopDispositions: { %loop: Computable }
; CHECK-NEXT: Determining loop execution counts for: @smax_simplify_with_guard
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 * %start) + %n)
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 * %start) + %n)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Analysis/ScalarEvolution/solve-quadratic-i1.ll
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ define void @f0() {
; CHECK-NEXT: --> (zext i1 {true,+,true,+,true}<%b1> to i16) U: [0,2) S: [0,2) Exits: 0 LoopDispositions: { %b1: Computable }
; CHECK-NEXT: Determining loop execution counts for: @f0
; CHECK-NEXT: Loop %b1: backedge-taken count is 1
; CHECK-NEXT: Loop %b1: max backedge-taken count is 1
; CHECK-NEXT: Loop %b1: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %b1: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
; CHECK: Loop %b1: Trip multiple is 2
Expand Down Expand Up @@ -64,10 +64,10 @@ define void @f1() #0 {
; CHECK-NEXT: --> {3,+,4,+,1}<%b1> U: full-set S: full-set --> 12 U: [12,13) S: [12,13)
; CHECK-NEXT: Determining loop execution counts for: @f1
; CHECK-NEXT: Loop %b3: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %b3: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %b3: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %b3: Unpredictable predicated backedge-taken count.
; CHECK-NEXT: Loop %b1: backedge-taken count is 2
; CHECK-NEXT: Loop %b1: max backedge-taken count is 2
; CHECK-NEXT: Loop %b1: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %b1: Predicated backedge-taken count is 2
; CHECK-NEXT: Predicates:
; CHECK: Loop %b1: Trip multiple is 3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
; CHECK-NEXT: --> {-1,+,-1}<nsw><%b1> U: [-256,0) S: [-256,0) --> -256 U: [-256,-255) S: [-256,-255)
; CHECK-NEXT: Determining loop execution counts for: @f0
; CHECK-NEXT: Loop %b1: backedge-taken count is 255
; CHECK-NEXT: Loop %b1: max backedge-taken count is 255
; CHECK-NEXT: Loop %b1: constant max backedge-taken count is 255
; CHECK-NEXT: Loop %b1: Predicated backedge-taken count is 255
; CHECK-NEXT: Predicates:
; CHECK-EMPTY:
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/srem.ll
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ define dso_local void @_Z4loopi(i32 %width) local_unnamed_addr #0 {
; CHECK-NEXT: --> {1,+,1}<nuw><%for.cond> U: [1,0) S: [1,0) Exits: (1 + %width) LoopDispositions: { %for.cond: Computable }
; CHECK-NEXT: Determining loop execution counts for: @_Z4loopi
; CHECK-NEXT: Loop %for.cond: backedge-taken count is %width
; CHECK-NEXT: Loop %for.cond: max backedge-taken count is -1
; CHECK-NEXT: Loop %for.cond: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.cond: Predicated backedge-taken count is %width
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.cond: Trip multiple is 1
Expand Down
32 changes: 16 additions & 16 deletions llvm/test/Analysis/ScalarEvolution/trip-count-andor-selectform.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ define void @unsimplified_and1(i32 %n) {
; CHECK-LABEL: 'unsimplified_and1'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and1
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -31,7 +31,7 @@ define void @unsimplified_and2(i32 %n) {
; CHECK-LABEL: 'unsimplified_and2'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and2
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -54,7 +54,7 @@ define void @unsimplified_and3(i32 %n) {
; CHECK-LABEL: 'unsimplified_and3'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and3
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -77,7 +77,7 @@ define void @unsimplified_and4(i32 %n) {
; CHECK-LABEL: 'unsimplified_and4'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and4
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -100,7 +100,7 @@ define void @unsimplified_or1(i32 %n) {
; CHECK-LABEL: 'unsimplified_or1'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or1
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -121,7 +121,7 @@ define void @unsimplified_or2(i32 %n) {
; CHECK-LABEL: 'unsimplified_or2'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or2
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -142,7 +142,7 @@ define void @unsimplified_or3(i32 %n) {
; CHECK-LABEL: 'unsimplified_or3'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or3
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -165,7 +165,7 @@ define void @unsimplified_or4(i32 %n) {
; CHECK-LABEL: 'unsimplified_or4'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or4
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -188,7 +188,7 @@ define void @reversed_and1(i32 %n) {
; CHECK-LABEL: 'reversed_and1'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and1
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -211,7 +211,7 @@ define void @reversed_and2(i32 %n) {
; CHECK-LABEL: 'reversed_and2'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and2
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -234,7 +234,7 @@ define void @reversed_and3(i32 %n) {
; CHECK-LABEL: 'reversed_and3'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and3
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -255,7 +255,7 @@ define void @reversed_and4(i32 %n) {
; CHECK-LABEL: 'reversed_and4'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and4
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -276,7 +276,7 @@ define void @reversed_or1(i32 %n) {
; CHECK-LABEL: 'reversed_or1'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or1
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -299,7 +299,7 @@ define void @reversed_or2(i32 %n) {
; CHECK-LABEL: 'reversed_or2'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or2
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -322,7 +322,7 @@ define void @reversed_or3(i32 %n) {
; CHECK-LABEL: 'reversed_or3'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or3
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -345,7 +345,7 @@ define void @reversed_or4(i32 %n) {
; CHECK-LABEL: 'reversed_or4'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or4
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down
32 changes: 16 additions & 16 deletions llvm/test/Analysis/ScalarEvolution/trip-count-andor.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ define void @unsimplified_and1(i32 %n) {
; CHECK-LABEL: 'unsimplified_and1'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and1
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -31,7 +31,7 @@ define void @unsimplified_and2(i32 %n) {
; CHECK-LABEL: 'unsimplified_and2'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and2
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -54,7 +54,7 @@ define void @unsimplified_and3(i32 %n) {
; CHECK-LABEL: 'unsimplified_and3'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and3
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -77,7 +77,7 @@ define void @unsimplified_and4(i32 %n) {
; CHECK-LABEL: 'unsimplified_and4'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_and4
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -100,7 +100,7 @@ define void @unsimplified_or1(i32 %n) {
; CHECK-LABEL: 'unsimplified_or1'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or1
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -121,7 +121,7 @@ define void @unsimplified_or2(i32 %n) {
; CHECK-LABEL: 'unsimplified_or2'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or2
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -142,7 +142,7 @@ define void @unsimplified_or3(i32 %n) {
; CHECK-LABEL: 'unsimplified_or3'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or3
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -165,7 +165,7 @@ define void @unsimplified_or4(i32 %n) {
; CHECK-LABEL: 'unsimplified_or4'
; CHECK-NEXT: Determining loop execution counts for: @unsimplified_or4
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -188,7 +188,7 @@ define void @reversed_and1(i32 %n) {
; CHECK-LABEL: 'reversed_and1'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and1
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -211,7 +211,7 @@ define void @reversed_and2(i32 %n) {
; CHECK-LABEL: 'reversed_and2'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and2
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -234,7 +234,7 @@ define void @reversed_and3(i32 %n) {
; CHECK-LABEL: 'reversed_and3'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and3
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -255,7 +255,7 @@ define void @reversed_and4(i32 %n) {
; CHECK-LABEL: 'reversed_and4'
; CHECK-NEXT: Determining loop execution counts for: @reversed_and4
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -276,7 +276,7 @@ define void @reversed_or1(i32 %n) {
; CHECK-LABEL: 'reversed_or1'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or1
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -299,7 +299,7 @@ define void @reversed_or2(i32 %n) {
; CHECK-LABEL: 'reversed_or2'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or2
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -322,7 +322,7 @@ define void @reversed_or3(i32 %n) {
; CHECK-LABEL: 'reversed_or3'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or3
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -345,7 +345,7 @@ define void @reversed_or4(i32 %n) {
; CHECK-LABEL: 'reversed_or4'
; CHECK-NEXT: Determining loop execution counts for: @reversed_or4
; CHECK-NEXT: Loop %loop: backedge-taken count is %n
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down
36 changes: 18 additions & 18 deletions llvm/test/Analysis/ScalarEvolution/trip-count-implied-addrec.ll
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ define void @nw_implies_nuw(i16 %n) mustprogress {
; CHECK-LABEL: 'nw_implies_nuw'
; CHECK-NEXT: Determining loop execution counts for: @nw_implies_nuw
; CHECK-NEXT: Loop %for.body: backedge-taken count is %n
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand All @@ -36,7 +36,7 @@ define void @neg_nw_nuw(i16 %n) mustprogress {
; CHECK-LABEL: 'neg_nw_nuw'
; CHECK-NEXT: Determining loop execution counts for: @neg_nw_nuw
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -57,7 +57,7 @@ define void @nw_implies_nsw(i16 %n) mustprogress {
; CHECK-LABEL: 'nw_implies_nsw'
; CHECK-NEXT: Determining loop execution counts for: @nw_implies_nsw
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (128 + (-128 smax %n))
; CHECK-NEXT: Predicates:
; CHECK-NEXT: {-128,+,1}<%for.body> Added Flags: <nssw>
Expand All @@ -80,7 +80,7 @@ define void @neg_nw_nsw(i16 %n) mustprogress {
; CHECK-LABEL: 'neg_nw_nsw'
; CHECK-NEXT: Determining loop execution counts for: @neg_nw_nsw
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -102,7 +102,7 @@ define void @actually_infinite() {
; CHECK-LABEL: 'actually_infinite'
; CHECK-NEXT: Determining loop execution counts for: @actually_infinite
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 257
; CHECK-NEXT: Predicates:
; CHECK-NEXT: {0,+,1}<%for.body> Added Flags: <nusw>
Expand All @@ -126,7 +126,7 @@ define void @rhs_mustexit_1(i16 %n.raw) mustprogress {
; CHECK-LABEL: 'rhs_mustexit_1'
; CHECK-NEXT: Determining loop execution counts for: @rhs_mustexit_1
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>))
; CHECK-NEXT: Predicates:
; CHECK-NEXT: {1,+,1}<nw><%for.body> Added Flags: <nusw>
Expand All @@ -152,7 +152,7 @@ define void @rhs_mustexit_3(i16 %n.raw) mustprogress {
; CHECK-LABEL: 'rhs_mustexit_3'
; CHECK-NEXT: Determining loop execution counts for: @rhs_mustexit_3
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -177,7 +177,7 @@ define void @rhs_mustexit_nonzero_step(i16 %n.raw, i8 %step.raw) mustprogress {
; CHECK-LABEL: 'rhs_mustexit_nonzero_step'
; CHECK-NEXT: Determining loop execution counts for: @rhs_mustexit_nonzero_step
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -202,7 +202,7 @@ define void @neg_maybe_zero_step(i16 %n.raw, i8 %step) mustprogress {
; CHECK-LABEL: 'neg_maybe_zero_step'
; CHECK-NEXT: Determining loop execution counts for: @neg_maybe_zero_step
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -226,7 +226,7 @@ define void @neg_rhs_wrong_range(i16 %n.raw) mustprogress {
; CHECK-LABEL: 'neg_rhs_wrong_range'
; CHECK-NEXT: Determining loop execution counts for: @neg_rhs_wrong_range
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-1 + (2 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>)) /u 2)
; CHECK-NEXT: Predicates:
; CHECK-NEXT: {2,+,2}<nw><%for.body> Added Flags: <nusw>
Expand All @@ -252,7 +252,7 @@ define void @neg_rhs_maybe_infinite(i16 %n.raw) {
; CHECK-LABEL: 'neg_rhs_maybe_infinite'
; CHECK-NEXT: Determining loop execution counts for: @neg_rhs_maybe_infinite
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax (-1 + (zext i8 (trunc i16 %n.raw to i8) to i16))<nsw>))
; CHECK-NEXT: Predicates:
; CHECK-NEXT: {1,+,1}<%for.body> Added Flags: <nusw>
Expand Down Expand Up @@ -280,7 +280,7 @@ define void @rhs_narrow_range(i16 %n.raw) {
; CHECK-LABEL: 'rhs_narrow_range'
; CHECK-NEXT: Determining loop execution counts for: @rhs_narrow_range
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (1 umax (2 * (zext i7 (trunc i16 (%n.raw /u 2) to i7) to i16))<nuw><nsw>))<nsw>
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 253
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 253
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax (2 * (zext i7 (trunc i16 (%n.raw /u 2) to i7) to i16))<nuw><nsw>))<nsw>
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand All @@ -306,7 +306,7 @@ define void @ugt_constant_rhs(i16 %n.raw, i8 %start) mustprogress {
; CHECK-LABEL: 'ugt_constant_rhs'
; CHECK-NEXT: Determining loop execution counts for: @ugt_constant_rhs
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -328,7 +328,7 @@ define void @ult_constant_rhs(i16 %n.raw, i8 %start) {
; CHECK-LABEL: 'ult_constant_rhs'
; CHECK-NEXT: Determining loop execution counts for: @ult_constant_rhs
; CHECK-NEXT: Loop %for.body: backedge-taken count is (255 + (-1 * (zext i8 (1 + %start) to i16))<nsw>)<nsw>
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 255
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 255
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (255 + (-1 * (zext i8 (1 + %start) to i16))<nsw>)<nsw>
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand All @@ -352,7 +352,7 @@ define void @ult_constant_rhs_stride2(i16 %n.raw, i8 %start) {
; CHECK-LABEL: 'ult_constant_rhs_stride2'
; CHECK-NEXT: Determining loop execution counts for: @ult_constant_rhs_stride2
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((1 + (-1 * (zext i8 (2 + %start) to i16))<nsw> + (254 umax (zext i8 (2 + %start) to i16))) /u 2)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 127
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 127
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((1 + (-1 * (zext i8 (2 + %start) to i16))<nsw> + (254 umax (zext i8 (2 + %start) to i16))) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand All @@ -376,7 +376,7 @@ define void @ult_constant_rhs_stride2_neg(i16 %n.raw, i8 %start) {
; CHECK-LABEL: 'ult_constant_rhs_stride2_neg'
; CHECK-NEXT: Determining loop execution counts for: @ult_constant_rhs_stride2_neg
; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((256 + (-1 * (zext i8 (2 + %start) to i16))<nsw>)<nsw> /u 2)
; CHECK-NEXT: Predicates:
; CHECK-NEXT: {(2 + %start),+,2}<%for.body> Added Flags: <nusw>
Expand All @@ -400,7 +400,7 @@ define void @ult_restricted_rhs(i16 %n.raw) {
; CHECK-LABEL: 'ult_restricted_rhs'
; CHECK-NEXT: Determining loop execution counts for: @ult_restricted_rhs
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (1 umax (zext i8 (trunc i16 %n.raw to i8) to i16)))<nsw>
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 254
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 254
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax (zext i8 (trunc i16 %n.raw to i8) to i16)))<nsw>
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand All @@ -424,7 +424,7 @@ define void @ult_guarded_rhs(i16 %n) {;
; CHECK-LABEL: 'ult_guarded_rhs'
; CHECK-NEXT: Determining loop execution counts for: @ult_guarded_rhs
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (1 umax %n))
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand Down
60 changes: 30 additions & 30 deletions llvm/test/Analysis/ScalarEvolution/trip-count-negative-stride.ll

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions llvm/test/Analysis/ScalarEvolution/trip-count-non-unit-stride.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ define void @test_preinc_ult(i64 %len) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
start:
Expand Down Expand Up @@ -48,7 +48,7 @@ define void @test_postinc_ult(i64 %len) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
start:
Expand Down Expand Up @@ -80,7 +80,7 @@ define void @test_preinc_slt(i64 %len) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
start:
Expand Down Expand Up @@ -113,7 +113,7 @@ define void @test_postinc_slt(i64 %len) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
start:
Expand Down Expand Up @@ -145,7 +145,7 @@ define void @test_preinc_sgt(i64 %lim) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
start:
Expand Down Expand Up @@ -178,7 +178,7 @@ define void @test_postinc_sgt(i64 %lim) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
start:
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/Analysis/ScalarEvolution/trip-count-pow2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ exit:

; CHECK-LABEL: @test1
; CHECK: Loop %loop: backedge-taken count is ((-32 + (96 * %n)) /u 32)
; CHECK: Loop %loop: max backedge-taken count is 134217727
; CHECK: Loop %loop: constant max backedge-taken count is 134217727
}

; PR19183
Expand All @@ -32,7 +32,7 @@ exit:

; CHECK-LABEL: @test2
; CHECK: Loop %loop: backedge-taken count is ((-32 + (32 * (%n /u 32))<nuw>) /u 32)
; CHECK: Loop %loop: max backedge-taken count is 134217727
; CHECK: Loop %loop: constant max backedge-taken count is 134217727
}

define void @test3(i32 %n) {
Expand All @@ -49,7 +49,7 @@ exit:

; CHECK-LABEL: @test3
; CHECK: Loop %loop: backedge-taken count is ((-32 + (32 * %n)) /u 32)
; CHECK: Loop %loop: max backedge-taken count is 134217727
; CHECK: Loop %loop: constant max backedge-taken count is 134217727
}

define void @test4(i32 %n) {
Expand All @@ -66,7 +66,7 @@ exit:

; CHECK-LABEL: @test4
; CHECK: Loop %loop: backedge-taken count is ((-4 + (-1431655764 * %n)) /u 4)
; CHECK: Loop %loop: max backedge-taken count is 1073741823
; CHECK: Loop %loop: constant max backedge-taken count is 1073741823
}

define void @test5(i32 %n) {
Expand All @@ -83,5 +83,5 @@ exit:

; CHECK-LABEL: @test5
; CHECK: Loop %loop: backedge-taken count is ((-4 + (4 * %n)) /u 4)
; CHECK: Loop %loop: max backedge-taken count is 1073741823
; CHECK: Loop %loop: constant max backedge-taken count is 1073741823
}
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count-switch.ll
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ for.end: ; preds = %for.cond

; CHECK-LABEL: @test1
; CHECK: Loop %for.cond: backedge-taken count is 2
; CHECK: Loop %for.cond: max backedge-taken count is 2
; CHECK: Loop %for.cond: constant max backedge-taken count is 2
}
18 changes: 9 additions & 9 deletions llvm/test/Analysis/ScalarEvolution/trip-count-unknown-stride.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

; We should have a conservative estimate for the max backedge taken count for
; loops with unknown stride.
; CHECK: max backedge-taken count is -1
; CHECK: constant max backedge-taken count is -1

target datalayout = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"

Expand Down Expand Up @@ -38,7 +38,7 @@ for.end: ; preds = %for.body, %entry

; We should have a conservative estimate for the max backedge taken count for
; loops with unknown stride.
; CHECK: max backedge-taken count is -1
; CHECK: constant max backedge-taken count is -1

define void @foo2(i32* nocapture %A, i32 %n, i32 %s) mustprogress {
entry:
Expand All @@ -62,7 +62,7 @@ for.end: ; preds = %for.body, %entry
; loops being UB.
; CHECK-LABEL: Determining loop execution counts for: @foo3
; CHECK: Loop %for.body: Unpredictable backedge-taken count.
; CHECK: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK: Loop %for.body: Unpredictable constant max backedge-taken count.

define void @foo3(i32* nocapture %A, i32 %n, i32 %s) {
entry:
Expand All @@ -85,7 +85,7 @@ for.end: ; preds = %for.body, %entry
; Same as foo2, but with mustprogress on loop, not function
; CHECK: Determining loop execution counts for: @foo4
; CHECK: backedge-taken count is ((((-1 * (1 umin ((-1 * %s) + (%n smax %s))))<nuw><nsw> + (-1 * %s) + (%n smax %s)) /u (1 umax %s)) + (1 umin ((-1 * %s) + (%n smax %s))))
; CHECK: max backedge-taken count is -1
; CHECK: constant max backedge-taken count is -1

define void @foo4(i32* nocapture %A, i32 %n, i32 %s) {
entry:
Expand All @@ -111,7 +111,7 @@ for.end: ; preds = %for.body, %entry

; We should have a conservative estimate for the max backedge taken count for
; loops with unknown stride.
; CHECK: max backedge-taken count is -1
; CHECK: constant max backedge-taken count is -1

define void @foo5(i32* nocapture %A, i32 %n, i32 %s, i32 %start) mustprogress {
entry:
Expand All @@ -135,7 +135,7 @@ for.end: ; preds = %for.body, %entry
; for unknown but potentially zero stride.
; CHECK-LABEL: Determining loop execution counts for: @zero_stride
; CHECK: Loop %for.body: Unpredictable backedge-taken count.
; CHECK: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK: Loop %for.body: Unpredictable predicated backedge-taken count.
; Note that this function is well defined only when %n <=s 0
define void @zero_stride(i32* nocapture %A, i32 %n) {
Expand All @@ -158,7 +158,7 @@ for.end: ; preds = %for.body, %entry

; CHECK-LABEL: Determining loop execution counts for: @zero_stride_ub
; CHECK: Loop %for.body: Unpredictable backedge-taken count.
; CHECK: Loop %for.body: Unpredictable max backedge-taken count.
; CHECK: Loop %for.body: Unpredictable constant max backedge-taken count.
; CHECK: Loop %for.body: Unpredictable predicated backedge-taken count.
; Note that this function will always execute undefined behavior and thus
; any value is valid for a backedge taken count.
Expand All @@ -183,7 +183,7 @@ for.end: ; preds = %for.body, %entry
; When %zero = 0, this loop is only well defined if %n < 0 and thus BTC = 0.
; CHECK-LABEL: Determining loop execution counts for: @zero_stride_symbolic
; CHECK: Loop %for.body: backedge-taken count is ((((-1 * (1 umin ((-1 * %zero) + (%n smax %zero))))<nuw><nsw> + (-1 * %zero) + (%n smax %zero)) /u (1 umax %zero)) + (1 umin ((-1 * %zero) + (%n smax %zero))))
; CHECK: Loop %for.body: max backedge-taken count is -1
; CHECK: Loop %for.body: constant max backedge-taken count is -1

define void @zero_stride_symbolic(i32* nocapture %A, i32 %n, i32 %zero) {
entry:
Expand All @@ -206,7 +206,7 @@ for.end: ; preds = %for.body, %entry

; CHECK-LABEL: Determining loop execution counts for: @zero_stride_varying_rhs
; CHECK: Loop %for.body: Unpredictable backedge-taken count.
; CHECK: Loop %for.body: Unpredictable max backedge-taken count
; CHECK: Loop %for.body: Unpredictable constant max backedge-taken count

define void @zero_stride_varying_rhs(i32* nocapture %A, i32* %n_p, i32 %zero) {
entry:
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Analysis/ScalarEvolution/trip-count.ll
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ define void @PR1101(i32 %N) {
; CHECK-LABEL: 'PR1101'
; CHECK-NEXT: Determining loop execution counts for: @PR1101
; CHECK-NEXT: Loop %bb3: backedge-taken count is 10000
; CHECK-NEXT: Loop %bb3: max backedge-taken count is 10000
; CHECK-NEXT: Loop %bb3: constant max backedge-taken count is 10000
; CHECK-NEXT: Loop %bb3: Predicated backedge-taken count is 10000
; CHECK-NEXT: Predicates:
; CHECK: Loop %bb3: Trip multiple is 10001
Expand Down Expand Up @@ -40,7 +40,7 @@ define i32 @PR22795() {
; CHECK-LABEL: 'PR22795'
; CHECK-NEXT: Determining loop execution counts for: @PR22795
; CHECK-NEXT: Loop %preheader: backedge-taken count is 7
; CHECK-NEXT: Loop %preheader: max backedge-taken count is 7
; CHECK-NEXT: Loop %preheader: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %preheader: Predicated backedge-taken count is 7
; CHECK-NEXT: Predicates:
; CHECK: Loop %preheader: Trip multiple is 8
Expand Down Expand Up @@ -103,7 +103,7 @@ define void @pr28012(i32 %n) {
; CHECK-LABEL: 'pr28012'
; CHECK-NEXT: Determining loop execution counts for: @pr28012
; CHECK-NEXT: Loop %loop: backedge-taken count is -1431655751
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1431655751
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1431655751
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is -1431655751
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 2863311546
Expand Down
14 changes: 7 additions & 7 deletions llvm/test/Analysis/ScalarEvolution/trip-count10.ll
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ define void @a(i64 %n) nounwind {
; CHECK-LABEL: 'a'
; CHECK-NEXT: Determining loop execution counts for: @a
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -27,7 +27,7 @@ define void @b(i64 %n) nounwind {
; CHECK-LABEL: 'b'
; CHECK-NEXT: Determining loop execution counts for: @b
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -49,7 +49,7 @@ define void @c(i64 %n) nounwind {
; CHECK-LABEL: 'c'
; CHECK-NEXT: Determining loop execution counts for: @c
; CHECK-NEXT: Loop %loop: backedge-taken count is false
; CHECK-NEXT: Loop %loop: max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -71,7 +71,7 @@ define void @d(i64 %n) nounwind {
; CHECK-LABEL: 'd'
; CHECK-NEXT: Determining loop execution counts for: @d
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand Down Expand Up @@ -99,7 +99,7 @@ define void @nonpolynomial() {
; CHECK-LABEL: 'nonpolynomial'
; CHECK-NEXT: Determining loop execution counts for: @nonpolynomial
; CHECK-NEXT: Loop %loophead: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loophead: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loophead: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loophead: Unpredictable predicated backedge-taken count.
;
entry:
Expand Down Expand Up @@ -127,7 +127,7 @@ define void @constant_phi_operands() nounwind {
; CHECK-LABEL: 'constant_phi_operands'
; CHECK-NEXT: Determining loop execution counts for: @constant_phi_operands
; CHECK-NEXT: Loop %loop: backedge-taken count is 1
; CHECK-NEXT: Loop %loop: max backedge-taken count is 1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 2
Expand All @@ -152,7 +152,7 @@ define void @exit_orcond_nsw(i32 *%a) nounwind {
; CHECK-LABEL: 'exit_orcond_nsw'
; CHECK-NEXT: Determining loop execution counts for: @exit_orcond_nsw
; CHECK-NEXT: Loop %for.body.i: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %for.body.i: max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body.i: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body.i: Unpredictable predicated backedge-taken count.
;
entry:
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count12.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

; CHECK: Determining loop execution counts for: @test
; CHECK: Loop %for.body: backedge-taken count is ((-2 + %len) /u 2)
; CHECK: Loop %for.body: max backedge-taken count is 1073741823
; CHECK: Loop %for.body: constant max backedge-taken count is 1073741823

define zeroext i16 @test(i16* nocapture %p, i32 %len) nounwind readonly {
entry:
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/Analysis/ScalarEvolution/trip-count13.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ loop:

; CHECK-LABEL: Determining loop execution counts for: @u_0
; CHECK-NEXT: Loop %loop: backedge-taken count is (-100 + (-1 * %rhs) + ((100 + %rhs) umax %rhs))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -100, actual taken count either this or zero.

leave:
ret void
Expand All @@ -34,7 +34,7 @@ loop:

; CHECK-LABEL: Determining loop execution counts for: @u_1
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 * %start) + ((-100 + %start) umax %start))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -100, actual taken count either this or zero.

leave:
ret void
Expand All @@ -54,7 +54,7 @@ loop:

; CHECK-LABEL: Determining loop execution counts for: @s_0
; CHECK-NEXT: Loop %loop: backedge-taken count is (-100 + (-1 * %rhs) + ((100 + %rhs) smax %rhs))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -100, actual taken count either this or zero.

leave:
ret void
Expand All @@ -74,7 +74,7 @@ loop:

; CHECK-LABEL: Determining loop execution counts for: @s_1
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 * %start) + ((-100 + %start) smax %start))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -100, actual taken count either this or zero.

leave:
ret void
Expand All @@ -93,7 +93,7 @@ loop:

; CHECK-LABEL: Determining loop execution counts for: @s_2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 * ((-100 + %start) smin %start)) + %start)
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1

leave:
ret void
Expand Down
16 changes: 8 additions & 8 deletions llvm/test/Analysis/ScalarEvolution/trip-count14.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ define void @s32_max1(i32 %n, i32* %p) {
; CHECK-LABEL: 's32_max1'
; CHECK-NEXT: Determining loop execution counts for: @s32_max1
; CHECK-NEXT: Loop %do.body: backedge-taken count is ((-1 * %n) + ((1 + %n) smax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((1 + %n) smax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand All @@ -30,7 +30,7 @@ define void @s32_max2(i32 %n, i32* %p) {
; CHECK-LABEL: 's32_max2'
; CHECK-NEXT: Determining loop execution counts for: @s32_max2
; CHECK-NEXT: Loop %do.body: backedge-taken count is ((-1 * %n) + ((2 + %n) smax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((2 + %n) smax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand All @@ -55,7 +55,7 @@ define void @s32_maxx(i32 %n, i32 %x, i32* %p) {
; CHECK-LABEL: 's32_maxx'
; CHECK-NEXT: Determining loop execution counts for: @s32_maxx
; CHECK-NEXT: Loop %do.body: backedge-taken count is ((-1 * %n) + ((%n + %x) smax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is -1
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((%n + %x) smax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand All @@ -82,7 +82,7 @@ define void @s32_max2_unpredictable_exit(i32 %n, i32 %x, i32* %p) {
; CHECK-NEXT: Loop %do.body: <multiple exits> backedge-taken count is (((-1 * %n) + ((2 + %n) smax %n)) umin ((-1 * %n) + %x))
; CHECK-NEXT: exit count for do.body: ((-1 * %n) + %x)
; CHECK-NEXT: exit count for if.end: ((-1 * %n) + ((2 + %n) smax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is 2
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is (((-1 * %n) + ((2 + %n) smax %n)) umin ((-1 * %n) + %x))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand Down Expand Up @@ -111,7 +111,7 @@ define void @u32_max1(i32 %n, i32* %p) {
; CHECK-LABEL: 'u32_max1'
; CHECK-NEXT: Determining loop execution counts for: @u32_max1
; CHECK-NEXT: Loop %do.body: backedge-taken count is ((-1 * %n) + ((1 + %n) umax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((1 + %n) umax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand All @@ -136,7 +136,7 @@ define void @u32_max2(i32 %n, i32* %p) {
; CHECK-LABEL: 'u32_max2'
; CHECK-NEXT: Determining loop execution counts for: @u32_max2
; CHECK-NEXT: Loop %do.body: backedge-taken count is ((-1 * %n) + ((2 + %n) umax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((2 + %n) umax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand All @@ -161,7 +161,7 @@ define void @u32_maxx(i32 %n, i32 %x, i32* %p) {
; CHECK-LABEL: 'u32_maxx'
; CHECK-NEXT: Determining loop execution counts for: @u32_maxx
; CHECK-NEXT: Loop %do.body: backedge-taken count is ((-1 * %n) + ((%n + %x) umax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is -1
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((%n + %x) umax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand All @@ -188,7 +188,7 @@ define void @u32_max2_unpredictable_exit(i32 %n, i32 %x, i32* %p) {
; CHECK-NEXT: Loop %do.body: <multiple exits> backedge-taken count is (((-1 * %n) + ((2 + %n) umax %n)) umin ((-1 * %n) + %x))
; CHECK-NEXT: exit count for do.body: ((-1 * %n) + %x)
; CHECK-NEXT: exit count for if.end: ((-1 * %n) + ((2 + %n) umax %n))
; CHECK-NEXT: Loop %do.body: max backedge-taken count is 2
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is (((-1 * %n) + ((2 + %n) umax %n)) umin ((-1 * %n) + %x))
; CHECK-NEXT: Predicates:
; CHECK: Loop %do.body: Trip multiple is 1
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/Analysis/ScalarEvolution/trip-count15.ll
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ define void @umin_unsigned_check(i64 %n) {
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,4099) S: [1,4099) Exits: (2 + (4096 umin %n))<nuw><nsw> LoopDispositions: { %loop: Computable }
; CHECK-NEXT: Determining loop execution counts for: @umin_unsigned_check
; CHECK-NEXT: Loop %loop: backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -42,7 +42,7 @@ define void @umin_signed_check(i64 %n) {
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,4099) S: [1,4099) Exits: (2 + (4096 umin %n))<nuw><nsw> LoopDispositions: { %loop: Computable }
; CHECK-NEXT: Determining loop execution counts for: @umin_signed_check
; CHECK-NEXT: Loop %loop: backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -72,7 +72,7 @@ define void @smin_signed_check(i64 %n) {
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,4099) S: [1,4099) Exits: (1 + (0 smax (1 + (4096 smin %n))<nsw>))<nuw><nsw> LoopDispositions: { %loop: Computable }
; CHECK-NEXT: Determining loop execution counts for: @smin_signed_check
; CHECK-NEXT: Loop %loop: backedge-taken count is (0 smax (1 + (4096 smin %n))<nsw>)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (0 smax (1 + (4096 smin %n))<nsw>)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -102,7 +102,7 @@ define void @smin_unsigned_check(i64 %n) {
; CHECK-NEXT: --> {1,+,1}<%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
; CHECK-NEXT: Determining loop execution counts for: @smin_unsigned_check
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ define void @PR1101(i32 %N) {
; CHECK-LABEL: 'PR1101'
; CHECK-NEXT: Determining loop execution counts for: @PR1101
; CHECK-NEXT: Loop %bb3: backedge-taken count is 4
; CHECK-NEXT: Loop %bb3: max backedge-taken count is 4
; CHECK-NEXT: Loop %bb3: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %bb3: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
; CHECK: Loop %bb3: Trip multiple is 5
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count3.ll
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ define void @sha_stream_bb3_2E_i(%struct.SHA_INFO* %sha_info, i8* %data1, i32, i
; CHECK-LABEL: 'sha_stream_bb3_2E_i'
; CHECK-NEXT: Determining loop execution counts for: @sha_stream_bb3_2E_i
; CHECK-NEXT: Loop %bb3.i: backedge-taken count is ((63 + (-1 * (63 smin %0)) + %0) /u 64)
; CHECK-NEXT: Loop %bb3.i: max backedge-taken count is 33554431
; CHECK-NEXT: Loop %bb3.i: constant max backedge-taken count is 33554431
; CHECK-NEXT: Loop %bb3.i: Predicated backedge-taken count is ((63 + (-1 * (63 smin %0)) + %0) /u 64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %bb3.i: Trip multiple is 1
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count4.ll
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ define void @another_count_down_signed(double* %d, i64 %n) nounwind {
; CHECK-LABEL: 'another_count_down_signed'
; CHECK-NEXT: Determining loop execution counts for: @another_count_down_signed
; CHECK-NEXT: Loop %loop: backedge-taken count is (-11 + %n)
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-11 + %n)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count6.ll
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ define i8 @f() {
; CHECK-NEXT: Loop %bb: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for bb: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for bb2: 1
; CHECK-NEXT: Loop %bb: max backedge-taken count is 1
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %bb: Unpredictable predicated backedge-taken count.
;
entry:
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count7.ll
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ define void @Doit_bb7_2E_i([9 x i32]* %x1, [15 x i32]* %c, [17 x i32]* %b, [9 x
; CHECK-LABEL: 'Doit_bb7_2E_i'
; CHECK-NEXT: Determining loop execution counts for: @Doit_bb7_2E_i
; CHECK-NEXT: Loop %bb7.i: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %bb7.i: max backedge-taken count is 8
; CHECK-NEXT: Loop %bb7.i: constant max backedge-taken count is 8
; CHECK-NEXT: Loop %bb7.i: Unpredictable predicated backedge-taken count.
;
newFuncRoot:
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/trip-count8.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ define i32 @foo(i32 %ecx) nounwind {
; CHECK-LABEL: 'foo'
; CHECK-NEXT: Determining loop execution counts for: @foo
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %ecx)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %ecx)
; CHECK-NEXT: Predicates:
; CHECK: Loop %for.body: Trip multiple is 1
Expand Down
48 changes: 24 additions & 24 deletions llvm/test/Analysis/ScalarEvolution/trip-count9.ll
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ define void @foo(i4 %n) {
; CHECK-LABEL: 'foo'
; CHECK-NEXT: Determining loop execution counts for: @foo
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %n)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 6
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 6
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -34,7 +34,7 @@ define void @step2(i4 %n) {
; CHECK-LABEL: 'step2'
; CHECK-NEXT: Determining loop execution counts for: @step2
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -53,7 +53,7 @@ define void @start1(i4 %n) {
; CHECK-LABEL: 'start1'
; CHECK-NEXT: Determining loop execution counts for: @start1
; CHECK-NEXT: Loop %loop: backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Loop %loop: max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -74,7 +74,7 @@ define void @start1_step2(i4 %n) {
; CHECK-LABEL: 'start1_step2'
; CHECK-NEXT: Determining loop execution counts for: @start1_step2
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -93,7 +93,7 @@ define void @startx(i4 %n, i4 %x) {
; CHECK-LABEL: 'startx'
; CHECK-NEXT: Determining loop execution counts for: @startx
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -114,7 +114,7 @@ define void @startx_step2(i4 %n, i4 %x) {
; CHECK-LABEL: 'startx_step2'
; CHECK-NEXT: Determining loop execution counts for: @startx_step2
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand All @@ -133,7 +133,7 @@ define void @nsw(i4 %n) {
; CHECK-LABEL: 'nsw'
; CHECK-NEXT: Determining loop execution counts for: @nsw
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %n)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 6
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 6
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -162,7 +162,7 @@ define void @nsw_step2(i4 %n) {
; CHECK-LABEL: 'nsw_step2'
; CHECK-NEXT: Determining loop execution counts for: @nsw_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + %n) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + %n) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -183,7 +183,7 @@ define void @nsw_start1(i4 %n) {
; CHECK-LABEL: 'nsw_start1'
; CHECK-NEXT: Determining loop execution counts for: @nsw_start1
; CHECK-NEXT: Loop %loop: backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Loop %loop: max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -204,7 +204,7 @@ define void @nsw_start1_step2(i4 %n) {
; CHECK-LABEL: 'nsw_start1_step2'
; CHECK-NEXT: Determining loop execution counts for: @nsw_start1_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-2 + (3 smax %n))<nsw> /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-2 + (3 smax %n))<nsw> /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -225,7 +225,7 @@ define void @nsw_startx(i4 %n, i4 %x) {
; CHECK-LABEL: 'nsw_startx'
; CHECK-NEXT: Determining loop execution counts for: @nsw_startx
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -246,7 +246,7 @@ define void @nsw_startx_step2(i4 %n, i4 %x) {
; CHECK-LABEL: 'nsw_startx_step2'
; CHECK-NEXT: Determining loop execution counts for: @nsw_startx_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax %n)) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax %n)) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -267,7 +267,7 @@ define void @even(i4 %n) {
; CHECK-LABEL: 'even'
; CHECK-NEXT: Determining loop execution counts for: @even
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Loop %loop: max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 2
Expand All @@ -289,7 +289,7 @@ define void @even_step2(i4 %n) {
; CHECK-LABEL: 'even_step2'
; CHECK-NEXT: Determining loop execution counts for: @even_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -311,7 +311,7 @@ define void @even_start1(i4 %n) {
; CHECK-LABEL: 'even_start1'
; CHECK-NEXT: Determining loop execution counts for: @even_start1
; CHECK-NEXT: Loop %loop: backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -333,7 +333,7 @@ define void @even_start1_step2(i4 %n) {
; CHECK-LABEL: 'even_start1_step2'
; CHECK-NEXT: Determining loop execution counts for: @even_start1_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -355,7 +355,7 @@ define void @even_startx(i4 %n, i4 %x) {
; CHECK-LABEL: 'even_startx'
; CHECK-NEXT: Determining loop execution counts for: @even_startx
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -377,7 +377,7 @@ define void @even_startx_step2(i4 %n, i4 %x) {
; CHECK-LABEL: 'even_startx_step2'
; CHECK-NEXT: Determining loop execution counts for: @even_startx_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -399,7 +399,7 @@ define void @even_nsw(i4 %n) {
; CHECK-LABEL: 'even_nsw'
; CHECK-NEXT: Determining loop execution counts for: @even_nsw
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Loop %loop: max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 2
Expand All @@ -421,7 +421,7 @@ define void @even_nsw_step2(i4 %n) {
; CHECK-LABEL: 'even_nsw_step2'
; CHECK-NEXT: Determining loop execution counts for: @even_nsw_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -443,7 +443,7 @@ define void @even_nsw_start1(i4 %n) {
; CHECK-LABEL: 'even_nsw_start1'
; CHECK-NEXT: Determining loop execution counts for: @even_nsw_start1
; CHECK-NEXT: Loop %loop: backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -465,7 +465,7 @@ define void @even_nsw_start1_step2(i4 %n) {
; CHECK-LABEL: 'even_nsw_start1_step2'
; CHECK-NEXT: Determining loop execution counts for: @even_nsw_start1_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -487,7 +487,7 @@ define void @even_nsw_startx(i4 %n, i4 %x) {
; CHECK-LABEL: 'even_nsw_startx'
; CHECK-NEXT: Determining loop execution counts for: @even_nsw_startx
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Loop %loop: max backedge-taken count is -2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand All @@ -509,7 +509,7 @@ define void @even_nsw_startx_step2(i4 %n, i4 %x) {
; CHECK-LABEL: 'even_nsw_startx_step2'
; CHECK-NEXT: Determining loop execution counts for: @even_nsw_startx_step2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down
24 changes: 12 additions & 12 deletions llvm/test/Analysis/ScalarEvolution/trip-multiple-guard-info.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
define void @test_trip_multiple_4(i32 %num) {
; CHECK-LABEL: @test_trip_multiple_4
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 4
;
Expand All @@ -32,7 +32,7 @@ exit:
define void @test_trip_multiple_4_ugt_5(i32 %num) {
; CHECK-LABEL: @test_trip_multiple_4_ugt_5
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 4
;
Expand All @@ -58,7 +58,7 @@ define void @test_trip_multiple_4_ugt_5_order_swapped(i32 %num) {
; TODO: Trip multiple can be 4, it is missed due to the processing order of the assumes.
; CHECK-LABEL: @test_trip_multiple_4_ugt_5_order_swapped
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 2
;
Expand All @@ -83,7 +83,7 @@ exit:
define void @test_trip_multiple_4_sgt_5(i32 %num) {
; CHECK-LABEL: @test_trip_multiple_4_sgt_5
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 4
;
Expand All @@ -109,7 +109,7 @@ define void @test_trip_multiple_4_sgt_5_order_swapped(i32 %num) {
; TODO: Trip multiple can be 4, it is missed due to the processing order of the assumes.
; CHECK-LABEL: @test_trip_multiple_4_sgt_5_order_swapped
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 2
;
Expand All @@ -134,7 +134,7 @@ exit:
define void @test_trip_multiple_4_uge_5(i32 %num) {
; CHECK-LABEL: @test_trip_multiple_4_uge_5
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 4
;
Expand All @@ -160,7 +160,7 @@ define void @test_trip_multiple_4_uge_5_order_swapped(i32 %num) {
; TODO: Trip multiple can be 4, it is missed due to the processing order of the assumes.
; CHECK-LABEL: @test_trip_multiple_4_uge_5_order_swapped
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 1
;
Expand All @@ -186,7 +186,7 @@ define void @test_trip_multiple_4_sge_5(i32 %num) {
; TODO: Trip multiple can be 4, it is missed due to the processing order of the assumes.
; CHECK-LABEL: @test_trip_multiple_4_sge_5
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 4
;
Expand All @@ -211,7 +211,7 @@ exit:
define void @test_trip_multiple_4_sge_5_order_swapped(i32 %num) {
; CHECK-LABEL: @test_trip_multiple_4_sge_5_order_swapped
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 1
;
Expand All @@ -237,7 +237,7 @@ exit:
define void @test_trip_multiple_4_icmp_ops_swapped(i32 %num) {
; CHECK-LABEL: @test_trip_multiple_4_icmp_ops_swapped
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 4
;
Expand All @@ -262,7 +262,7 @@ exit:
define void @test_trip_multiple_5(i32 %num) {
; CHECK-LABEL: @test_trip_multiple_5
; CHECK: Loop %for.body: backedge-taken count is (-1 + %num)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
; CHECK: Loop %for.body: Trip multiple is 1
;
Expand All @@ -287,7 +287,7 @@ exit:
define void @test_trunc_operand_larger_than_urem_expr(i64 %N) {
; CHECK-LABEL: @test_trunc_operand_larger_than_urem_expr
; CHECK: Loop %for.body: backedge-taken count is (-1 + %N)
; CHECK-NEXT: Loop %for.body: max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %N)
;
entry:
Expand Down
18 changes: 9 additions & 9 deletions llvm/test/Analysis/ScalarEvolution/umin-umax-folds.ll
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ define void @umin_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (%cmp1 umin %cmp2) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @umin_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -51,7 +51,7 @@ define void @ule_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @ule_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -86,7 +86,7 @@ define void @uge_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (sext i32 %len to i64) U: [-2147483648,2147483648) S: [-2147483648,2147483648) Exits: (sext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @uge_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (sext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (sext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -121,7 +121,7 @@ define void @ult_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @ult_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -156,7 +156,7 @@ define void @ugt_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (sext i32 %len to i64) U: [-2147483648,2147483648) S: [-2147483648,2147483648) Exits: (sext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @ugt_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (sext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (sext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -191,7 +191,7 @@ define void @sle_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @sle_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -226,7 +226,7 @@ define void @sge_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @sge_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -261,7 +261,7 @@ define void @slt_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (sext i32 %len to i64) U: [-2147483648,2147483648) S: [-2147483648,2147483648) Exits: (sext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @slt_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (sext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (sext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down Expand Up @@ -296,7 +296,7 @@ define void @sgt_sext_x_zext_x(i32 %len) {
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
; CHECK-NEXT: Determining loop execution counts for: @sgt_sext_x_zext_x
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Loop %loop: max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 1
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/unknown_phis.ll
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ define void @merge_values_with_ranges_looped(i32 *%a_len_ptr, i32 *%b_len_ptr) {
; CHECK-NEXT: --> {1,+,1}<%loop> U: [1,101) S: [1,101) Exits: 100 LoopDispositions: { %loop: Computable }
; CHECK-NEXT: Determining loop execution counts for: @merge_values_with_ranges_looped
; CHECK-NEXT: Loop %loop: backedge-taken count is 99
; CHECK-NEXT: Loop %loop: max backedge-taken count is 99
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 99
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 99
; CHECK-NEXT: Predicates:
; CHECK: Loop %loop: Trip multiple is 100
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/widenable-condition.ll
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ define i32 @wc_max() {
; CHECK-NEXT: --> (%cond_1 umin %widenable_cond3) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @wc_max
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
; CHECK-NEXT: Loop %loop: max backedge-taken count is 1999
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1999
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
;
entry:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

; CHECK: Determining loop execution counts for: @test
; CHECK-NEXT: Loop %inner: backedge-taken count is (405 + %invar)<nuw><nsw>
; CHECK-NEXT: Loop %inner: max backedge-taken count is 405
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is 405
; CHECK-NEXT: Loop %inner: Predicated backedge-taken count is (405 + %invar)<nuw><nsw>

define void @test_pr57837() {
Expand Down
Loading