34 changes: 17 additions & 17 deletions llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -242,7 +242,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -276,7 +276,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: constant max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 60
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 60
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -309,7 +309,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: constant max backedge-taken count is 61
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 61
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 61
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 61
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -344,7 +344,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -378,7 +378,7 @@ define void @test_shl7(i1 %c, i64 %shiftamt) {
; CHECK-NEXT: --> %iv.shl.next U: [0,-3) S: [-9223372036854775808,9223372036854775805) 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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -525,7 +525,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -557,7 +557,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -591,7 +591,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: constant max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 60
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 60
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 60
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -624,7 +624,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -656,7 +656,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -688,7 +688,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -722,7 +722,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -755,7 +755,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -788,7 +788,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -821,7 +821,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -853,7 +853,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
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 @@ -8,7 +8,7 @@ define void @le(i64 %n, ptr nocapture %p) nounwind {
; CHECK-LABEL: 'le'
; CHECK-NEXT: Determining loop execution counts for: @le
; CHECK-NEXT: Loop %for.body: backedge-taken count is %n
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 9223372036854775807
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 9223372036854775807
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/Analysis/ScalarEvolution/smax-br-phi-idioms.ll
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ define i32 @f5(ptr %val) {
; CHECK-NEXT: Loop %for.end: <multiple exits> backedge-taken count is false
; CHECK-NEXT: exit count for for.end: false
; CHECK-NEXT: exit count for for.condt: false
; CHECK-NEXT: Loop %for.end: constant max backedge-taken count is false
; CHECK-NEXT: Loop %for.end: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %for.end: symbolic max backedge-taken count is false
; CHECK-NEXT: symbolic max exit count for for.end: false
; CHECK-NEXT: symbolic max exit count for for.condt: false
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 @@ -34,7 +34,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: constant max backedge-taken count is 2147483647
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 2147483647
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -71,7 +71,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: constant max backedge-taken count is 2147483647
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 2147483647
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is ((-1 * (0 smin %n)) + %n)
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-1 * (0 smin %n)) + %n)
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -107,7 +107,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 * %start) + %n)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 * %start) + %n)
; CHECK-NEXT: Predicates:
Expand Down
4 changes: 2 additions & 2 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: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %b1: constant max backedge-taken count is i6 1
; CHECK-NEXT: Loop %b1: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %b1: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -69,7 +69,7 @@ define void @f1() #0 {
; CHECK-NEXT: Loop %b3: Unpredictable symbolic 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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %b1: constant max backedge-taken count is i6 2
; CHECK-NEXT: Loop %b1: symbolic max backedge-taken count is 2
; CHECK-NEXT: Loop %b1: Predicated backedge-taken count is 2
; CHECK-NEXT: Predicates:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ define signext i32 @f0() {
; 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: constant max backedge-taken count is 255
; CHECK-NEXT: Loop %b1: constant max backedge-taken count is i16 255
; CHECK-NEXT: Loop %b1: symbolic max backedge-taken count is 255
; CHECK-NEXT: Loop %b1: Predicated backedge-taken count is 255
; CHECK-NEXT: Predicates:
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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.cond: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %for.cond: symbolic max backedge-taken count is %width
; CHECK-NEXT: Loop %for.cond: Predicated backedge-taken count is %width
; CHECK-NEXT: Predicates:
Expand Down
20 changes: 10 additions & 10 deletions llvm/test/Analysis/ScalarEvolution/symbolic_max_exit_count.ll
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ define i32 @test_simple_case(i32 %start, i32 %len) {
; CHECK-NEXT: exit count for loop: %start
; CHECK-NEXT: exit count for range_check_block: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %start
; CHECK-NEXT: symbolic max exit count for loop: %start
; CHECK-NEXT: symbolic max exit count for range_check_block: ***COULDNOTCOMPUTE***
Expand Down Expand Up @@ -78,7 +78,7 @@ define i32 @test_litter_conditions(i32 %start, i32 %len) {
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for range_check_block: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %start
; CHECK-NEXT: symbolic max exit count for loop: %start
; CHECK-NEXT: symbolic max exit count for range_check_block: ***COULDNOTCOMPUTE***
Expand Down Expand Up @@ -141,7 +141,7 @@ define i32 @test_litter_conditions_bad_context(i32 %start, i32 %len) {
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for range_check_block: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %start
; CHECK-NEXT: symbolic max exit count for loop: %start
; CHECK-NEXT: symbolic max exit count for range_check_block: ***COULDNOTCOMPUTE***
Expand Down Expand Up @@ -197,7 +197,7 @@ define i32 @test_and_conditions(i32 %start, i32 %len) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %start
; CHECK-NEXT: symbolic max exit count for loop: %start
; CHECK-NEXT: symbolic max exit count for backedge: ***COULDNOTCOMPUTE***
Expand Down Expand Up @@ -240,7 +240,7 @@ define i32 @test_mixup_constant_symbolic(i32 %end, i32 %len) {
; CHECK-NEXT: exit count for loop: %end
; CHECK-NEXT: exit count for range_check_block: 1000
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1000
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 1000
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (1000 umin %end)
; CHECK-NEXT: symbolic max exit count for loop: %end
; CHECK-NEXT: symbolic max exit count for range_check_block: 1000
Expand Down Expand Up @@ -289,7 +289,7 @@ define i32 @test_mixup_constant_symbolic_merged(i32 %end, i32 %len) {
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
; CHECK-NEXT: exit count for loop: (1000 umin %end)
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1000
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 1000
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (1000 umin %end)
; CHECK-NEXT: symbolic max exit count for loop: (1000 umin %end)
; CHECK-NEXT: symbolic max exit count for backedge: ***COULDNOTCOMPUTE***
Expand Down Expand Up @@ -346,7 +346,7 @@ define i32 @test_two_phis(i32 %start_1, i32 %start_2, i32 %len) {
; CHECK-NEXT: exit count for zero_check_block: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for range_check_block: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%start_1 umin_seq %start_2)
; CHECK-NEXT: symbolic max exit count for loop: %start_1
; CHECK-NEXT: symbolic max exit count for zero_check_block: %start_2
Expand Down Expand Up @@ -407,7 +407,7 @@ define i32 @test_two_phis_simple(i32 %start_1, i32 %start_2, i32 %len) {
; CHECK-NEXT: Loop %loop: <multiple exits> backedge-taken count is (%start_1 umin_seq %start_2)
; CHECK-NEXT: exit count for loop: %start_1
; CHECK-NEXT: exit count for backedge: %start_2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%start_1 umin_seq %start_2)
; CHECK-NEXT: symbolic max exit count for loop: %start_1
; CHECK-NEXT: symbolic max exit count for backedge: %start_2
Expand Down Expand Up @@ -464,7 +464,7 @@ define i32 @test_two_phis_arithmetic_and(i32 %start_1, i32 %start_2, i32 %len) {
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for range_check_block: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%start_1 umin %start_2)
; CHECK-NEXT: symbolic max exit count for loop: (%start_1 umin %start_2)
; CHECK-NEXT: symbolic max exit count for range_check_block: ***COULDNOTCOMPUTE***
Expand Down Expand Up @@ -611,7 +611,7 @@ define i32 @test_two_phis_logical_and(i32 %start_1, i32 %start_2, i32 %len) {
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for range_check_block: ***COULDNOTCOMPUTE***
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%start_1 umin_seq %start_2)
; CHECK-NEXT: symbolic max exit count for loop: (%start_1 umin_seq %start_2)
; CHECK-NEXT: symbolic max exit count for range_check_block: ***COULDNOTCOMPUTE***
Expand Down
24 changes: 12 additions & 12 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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -32,7 +32,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -56,7 +56,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -80,7 +80,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -148,7 +148,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -172,7 +172,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -196,7 +196,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -220,7 +220,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -288,7 +288,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -312,7 +312,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -336,7 +336,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -360,7 +360,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand Down
24 changes: 12 additions & 12 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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -32,7 +32,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -56,7 +56,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -80,7 +80,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -148,7 +148,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -172,7 +172,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -196,7 +196,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -220,7 +220,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -288,7 +288,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -312,7 +312,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -336,7 +336,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand All @@ -360,7 +360,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand Down
12 changes: 6 additions & 6 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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 -1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is %n
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is %n
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -291,7 +291,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: constant max backedge-taken count is 253
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 253
; CHECK-NEXT: Loop %for.body: symbolic max 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: 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:
Expand Down Expand Up @@ -341,7 +341,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: constant max backedge-taken count is 255
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 255
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (255 + (-1 * (zext i8 (1 + %start) to i16))<nsw>)<nsw>
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (255 + (-1 * (zext i8 (1 + %start) to i16))<nsw>)<nsw>
; CHECK-NEXT: Predicates:
Expand All @@ -366,7 +366,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: constant max backedge-taken count is 127
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 127
; CHECK-NEXT: Loop %for.body: symbolic max 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: 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:
Expand Down Expand Up @@ -416,7 +416,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: constant max backedge-taken count is 254
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 254
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + (1 umax (zext i8 (trunc i16 %n.raw to i8) to i16)))<nsw>
; 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:
Expand All @@ -441,7 +441,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: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 -2
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + (1 umax %n))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax %n))
; CHECK-NEXT: Predicates:
Expand Down
14 changes: 7 additions & 7 deletions llvm/test/Analysis/ScalarEvolution/trip-count-minmax.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ define void @nomulitply(i32 noundef %a, i32 noundef %b) {
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: (%a umin %b) LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @nomulitply
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (%a umin %b))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 2147483646
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + (%a umin %b))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (%a umin %b))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -61,7 +61,7 @@ define void @umin(i32 noundef %a, i32 noundef %b) {
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: ((2 * %a) umin (4 * %b)) LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @umin
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + ((2 * %a) umin (4 * %b)))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 2147483646
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + ((2 * %a) umin (4 * %b)))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + ((2 * %a) umin (4 * %b)))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -111,7 +111,7 @@ define void @umax(i32 noundef %a, i32 noundef %b) {
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-1) S: [1,-1) Exits: ((2 * %a) umax (4 * %b)) LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @umax
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + ((2 * %a) umax (4 * %b)))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -3
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -3
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + ((2 * %a) umax (4 * %b)))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + ((2 * %a) umax (4 * %b)))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -161,7 +161,7 @@ define void @smin(i32 noundef %a, i32 noundef %b) {
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: ((2 * %a)<nsw> smin (4 * %b)<nsw>) LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @smin
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + ((2 * %a)<nsw> smin (4 * %b)<nsw>))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 2147483646
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + ((2 * %a)<nsw> smin (4 * %b)<nsw>))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + ((2 * %a)<nsw> smin (4 * %b)<nsw>))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -210,7 +210,7 @@ define void @smax(i32 noundef %a, i32 noundef %b) {
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-1) S: [1,-1) Exits: ((2 * %a)<nsw> smax (4 * %b)<nsw>) LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @smax
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + ((2 * %a)<nsw> smax (4 * %b)<nsw>))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -3
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -3
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + ((2 * %a)<nsw> smax (4 * %b)<nsw>))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + ((2 * %a)<nsw> smax (4 * %b)<nsw>))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -259,7 +259,7 @@ define void @umin_seq2(i32 %n, i32 %m) {
; CHECK-NEXT: --> (%cond_p0 umin_seq %cond_p1) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
; CHECK-NEXT: Determining loop execution counts for: @umin_seq2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + (1 umax (2 * %n))) umin_seq (-1 + (1 umax (16 * %m))))
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -17
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -17
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + (1 umax (2 * %n))) umin_seq (-1 + (1 umax (16 * %m))))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (1 umax (2 * %n))) umin_seq (-1 + (1 umax (16 * %m))))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -297,7 +297,7 @@ define void @umin-3and6(i32 noundef %a, i32 noundef %b) {
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: ((3 * %a) umin (6 * %b)) LoopDispositions: { %for.body: Computable }
; CHECK-NEXT: Determining loop execution counts for: @umin-3and6
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + ((3 * %a) umin (6 * %b)))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 2147483646
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + ((3 * %a) umin (6 * %b)))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + ((3 * %a) umin (6 * %b)))
; CHECK-NEXT: Predicates:
Expand Down
42 changes: 21 additions & 21 deletions llvm/test/Analysis/ScalarEvolution/trip-count-negative-stride.ll
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ define void @ult_infinite_ub() mustprogress {
; CHECK-LABEL: 'ult_infinite_ub'
; CHECK-NEXT: Determining loop execution counts for: @ult_infinite_ub
; CHECK-NEXT: Loop %for.body: backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
Expand All @@ -84,7 +84,7 @@ define void @ult_129_not_taken() {
; CHECK-LABEL: 'ult_129_not_taken'
; CHECK-NEXT: Determining loop execution counts for: @ult_129_not_taken
; CHECK-NEXT: Loop %for.body: backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 0
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
Expand All @@ -107,7 +107,7 @@ define void @ult_129_unknown_start(i8 %start) mustprogress {
; CHECK-LABEL: 'ult_129_unknown_start'
; CHECK-NEXT: Determining loop execution counts for: @ult_129_unknown_start
; CHECK-NEXT: Loop %for.body: backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 0
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -159,7 +159,7 @@ define void @ult_ub1() {
; CHECK-LABEL: 'ult_ub1'
; CHECK-NEXT: Determining loop execution counts for: @ult_ub1
; CHECK-NEXT: Loop %for.body: backedge-taken count is 2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 2
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 2
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 2
; CHECK-NEXT: Predicates:
Expand All @@ -184,7 +184,7 @@ define void @ult_ub2() {
; CHECK-LABEL: 'ult_ub2'
; CHECK-NEXT: Determining loop execution counts for: @ult_ub2
; CHECK-NEXT: Loop %for.body: backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 0
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
Expand All @@ -209,7 +209,7 @@ define void @ult_129_preinc() {
; CHECK-LABEL: 'ult_129_preinc'
; CHECK-NEXT: Determining loop execution counts for: @ult_129_preinc
; CHECK-NEXT: Loop %for.body: backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
Expand All @@ -232,7 +232,7 @@ define void @ult_preinc(i8 %step) {
; CHECK-LABEL: 'ult_preinc'
; CHECK-NEXT: Determining loop execution counts for: @ult_preinc
; CHECK-NEXT: Loop %for.body: backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -309,7 +309,7 @@ define void @slt_wrap() {
; CHECK-LABEL: 'slt_wrap'
; CHECK-NEXT: Determining loop execution counts for: @slt_wrap
; CHECK-NEXT: Loop %for.body: backedge-taken count is 63
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 63
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 63
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 63
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 63
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -357,7 +357,7 @@ define void @slt_infinite_ub() mustprogress {
; CHECK-LABEL: 'slt_infinite_ub'
; CHECK-NEXT: Determining loop execution counts for: @slt_infinite_ub
; CHECK-NEXT: Loop %for.body: backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 0
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
Expand All @@ -382,7 +382,7 @@ define void @slt_129_not_taken() {
; CHECK-LABEL: 'slt_129_not_taken'
; CHECK-NEXT: Determining loop execution counts for: @slt_129_not_taken
; CHECK-NEXT: Loop %for.body: backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 0
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -429,7 +429,7 @@ define void @slt_129_unknown_start(i8 %start) mustprogress {
; CHECK-LABEL: 'slt_129_unknown_start'
; CHECK-NEXT: Determining loop execution counts for: @slt_129_unknown_start
; CHECK-NEXT: Loop %for.body: backedge-taken count is (((127 + (-1 * (1 umin (127 + (-1 * %start) + (0 smax (-127 + %start)<nsw>))))<nuw><nsw> + (-1 * %start) + (0 smax (-127 + %start)<nsw>)) /u -127) + (1 umin (127 + (-1 * %start) + (0 smax (-127 + %start)<nsw>))))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 2
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (((127 + (-1 * (1 umin (127 + (-1 * %start) + (0 smax (-127 + %start)<nsw>))))<nuw><nsw> + (-1 * %start) + (0 smax (-127 + %start)<nsw>)) /u -127) + (1 umin (127 + (-1 * %start) + (0 smax (-127 + %start)<nsw>))))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (((127 + (-1 * (1 umin (127 + (-1 * %start) + (0 smax (-127 + %start)<nsw>))))<nuw><nsw> + (-1 * %start) + (0 smax (-127 + %start)<nsw>)) /u -127) + (1 umin (127 + (-1 * %start) + (0 smax (-127 + %start)<nsw>))))
; CHECK-NEXT: Predicates:
Expand All @@ -455,7 +455,7 @@ define void @slt_ub1() {
; CHECK-LABEL: 'slt_ub1'
; CHECK-NEXT: Determining loop execution counts for: @slt_ub1
; CHECK-NEXT: Loop %for.body: backedge-taken count is false
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is false
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -480,7 +480,7 @@ define void @slt_ub2() {
; CHECK-LABEL: 'slt_ub2'
; CHECK-NEXT: Determining loop execution counts for: @slt_ub2
; CHECK-NEXT: Loop %for.body: backedge-taken count is false
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is false
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -505,7 +505,7 @@ define void @slt_129_preinc() {
; CHECK-LABEL: 'slt_129_preinc'
; CHECK-NEXT: Determining loop execution counts for: @slt_129_preinc
; CHECK-NEXT: Loop %for.body: backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
Expand All @@ -528,7 +528,7 @@ define void @slt_preinc(i8 %step) {
; CHECK-LABEL: 'slt_preinc'
; CHECK-NEXT: Determining loop execution counts for: @slt_preinc
; CHECK-NEXT: Loop %for.body: backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i8 1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -602,13 +602,13 @@ define void @step_is_neg_addrec_slt_8(i64 %n) {
; CHECK-LABEL: 'step_is_neg_addrec_slt_8'
; CHECK-NEXT: Determining loop execution counts for: @step_is_neg_addrec_slt_8
; CHECK-NEXT: Loop %inner: backedge-taken count is (7 /u {0,+,-1}<%outer.header>)
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is 8
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is i32 8
; CHECK-NEXT: Loop %inner: symbolic max backedge-taken count is (7 /u {0,+,-1}<%outer.header>)
; CHECK-NEXT: Loop %inner: Predicated backedge-taken count is (7 /u {0,+,-1}<%outer.header>)
; CHECK-NEXT: Predicates:
; CHECK-NEXT: Loop %inner: Trip multiple is 1
; CHECK-NEXT: Loop %outer.header: backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: constant max backedge-taken count is i64 0
; CHECK-NEXT: Loop %outer.header: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -644,13 +644,13 @@ define void @step_is_neg_addrec_slt_var(i32 %n) {
; CHECK-LABEL: 'step_is_neg_addrec_slt_var'
; CHECK-NEXT: Determining loop execution counts for: @step_is_neg_addrec_slt_var
; CHECK-NEXT: Loop %inner: backedge-taken count is ({0,+,1}<nuw><nsw><%outer.header> + ({0,+,-1}<nsw><%outer.header> smax %n))
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is 2147483647
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is i32 2147483647
; CHECK-NEXT: Loop %inner: symbolic max backedge-taken count is ({0,+,1}<nuw><nsw><%outer.header> + ({0,+,-1}<nsw><%outer.header> smax %n))
; CHECK-NEXT: Loop %inner: Predicated backedge-taken count is ({0,+,1}<nuw><nsw><%outer.header> + ({0,+,-1}<nsw><%outer.header> smax %n))
; CHECK-NEXT: Predicates:
; CHECK-NEXT: Loop %inner: Trip multiple is 1
; CHECK-NEXT: Loop %outer.header: backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: constant max backedge-taken count is i64 0
; CHECK-NEXT: Loop %outer.header: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -686,13 +686,13 @@ define void @step_is_neg_addrec_unknown_start(i32 %n) {
; CHECK-LABEL: 'step_is_neg_addrec_unknown_start'
; CHECK-NEXT: Determining loop execution counts for: @step_is_neg_addrec_unknown_start
; CHECK-NEXT: Loop %inner: backedge-taken count is ({(-1 * %n),+,1}<nw><%outer.header> + (8 smax {%n,+,-1}<nsw><%outer.header>))
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is -2147483640
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is i32 -2147483640
; CHECK-NEXT: Loop %inner: symbolic max backedge-taken count is ({(-1 * %n),+,1}<nw><%outer.header> + (8 smax {%n,+,-1}<nsw><%outer.header>))
; CHECK-NEXT: Loop %inner: Predicated backedge-taken count is ({(-1 * %n),+,1}<nw><%outer.header> + (8 smax {%n,+,-1}<nsw><%outer.header>))
; CHECK-NEXT: Predicates:
; CHECK-NEXT: Loop %inner: Trip multiple is 1
; CHECK-NEXT: Loop %outer.header: backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: constant max backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: constant max backedge-taken count is i64 0
; CHECK-NEXT: Loop %outer.header: symbolic max backedge-taken count is 0
; CHECK-NEXT: Loop %outer.header: Predicated backedge-taken count is 0
; CHECK-NEXT: Predicates:
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 @@ -5,7 +5,7 @@ define void @test1(i32 %n) {
; CHECK-LABEL: 'test1'
; CHECK-NEXT: Determining loop execution counts for: @test1
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-32 + (96 * %n)) /u 32)
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 134217727
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 134217727
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-32 + (96 * %n)) /u 32)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-32 + (96 * %n)) /u 32)
; CHECK-NEXT: Predicates:
Expand All @@ -29,7 +29,7 @@ define i32 @test2(i32 %n) {
; CHECK-LABEL: 'test2'
; CHECK-NEXT: Determining loop execution counts for: @test2
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-32 + (32 * (%n /u 32))<nuw>) /u 32)
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 134217727
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 134217727
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-32 + (32 * (%n /u 32))<nuw>) /u 32)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-32 + (32 * (%n /u 32))<nuw>) /u 32)
; CHECK-NEXT: Predicates:
Expand All @@ -52,7 +52,7 @@ define void @test3(i32 %n) {
; CHECK-LABEL: 'test3'
; CHECK-NEXT: Determining loop execution counts for: @test3
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-32 + (32 * %n)) /u 32)
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 134217727
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 134217727
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-32 + (32 * %n)) /u 32)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-32 + (32 * %n)) /u 32)
; CHECK-NEXT: Predicates:
Expand All @@ -75,7 +75,7 @@ define void @test4(i32 %n) {
; CHECK-LABEL: 'test4'
; CHECK-NEXT: Determining loop execution counts for: @test4
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (-1431655764 * %n)) /u 4)
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1073741823
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 1073741823
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (-1431655764 * %n)) /u 4)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (-1431655764 * %n)) /u 4)
; CHECK-NEXT: Predicates:
Expand All @@ -98,7 +98,7 @@ define void @test5(i32 %n) {
; CHECK-LABEL: 'test5'
; CHECK-NEXT: Determining loop execution counts for: @test5
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * %n)) /u 4)
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1073741823
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 1073741823
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * %n)) /u 4)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * %n)) /u 4)
; CHECK-NEXT: Predicates:
Expand Down
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 @@ -8,7 +8,7 @@ define void @test1() nounwind {
; CHECK-LABEL: 'test1'
; CHECK-NEXT: Determining loop execution counts for: @test1
; CHECK-NEXT: Loop %for.cond: backedge-taken count is 2
; CHECK-NEXT: Loop %for.cond: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %for.cond: constant max backedge-taken count is i32 2
; CHECK-NEXT: Loop %for.cond: symbolic max backedge-taken count is 2
; CHECK-NEXT: Loop %for.cond: Predicated backedge-taken count is 2
; CHECK-NEXT: Predicates:
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/Analysis/ScalarEvolution/trip-count-unknown-stride.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ define void @foo1(ptr nocapture %A, i32 %n, i32 %s) mustprogress {
; CHECK-LABEL: 'foo1'
; CHECK-NEXT: Determining loop execution counts for: @foo1
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((-1 + (%n smax %s)) /u %s)
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is ((-1 + (%n smax %s)) /u %s)
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-1 + (%n smax %s)) /u %s)
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -50,7 +50,7 @@ define void @foo2(ptr nocapture %A, i32 %n, i32 %s) mustprogress {
; CHECK-LABEL: 'foo2'
; CHECK-NEXT: Determining loop execution counts for: @foo2
; CHECK-NEXT: Loop %for.body: 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-NEXT: Loop %for.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %for.body: symbolic max 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-NEXT: Loop %for.body: Predicated 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-NEXT: Predicates:
Expand Down Expand Up @@ -109,7 +109,7 @@ define void @foo4(ptr nocapture %A, i32 %n, i32 %s) {
; CHECK-LABEL: 'foo4'
; CHECK-NEXT: Determining loop execution counts for: @foo4
; CHECK-NEXT: Loop %for.body: 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-NEXT: Loop %for.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %for.body: symbolic max 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-NEXT: Loop %for.body: Predicated 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-NEXT: Predicates:
Expand Down Expand Up @@ -142,7 +142,7 @@ define void @foo5(ptr nocapture %A, i32 %n, i32 %s, i32 %start) mustprogress {
; CHECK-LABEL: 'foo5'
; CHECK-NEXT: Determining loop execution counts for: @foo5
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((((-1 * (1 umin ((-1 * %start) + (%n smax %start))))<nuw><nsw> + (-1 * %start) + (%n smax %start)) /u (1 umax %s)) + (1 umin ((-1 * %start) + (%n smax %start))))
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is ((((-1 * (1 umin ((-1 * %start) + (%n smax %start))))<nuw><nsw> + (-1 * %start) + (%n smax %start)) /u (1 umax %s)) + (1 umin ((-1 * %start) + (%n smax %start))))
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((((-1 * (1 umin ((-1 * %start) + (%n smax %start))))<nuw><nsw> + (-1 * %start) + (%n smax %start)) /u (1 umax %s)) + (1 umin ((-1 * %start) + (%n smax %start))))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -229,7 +229,7 @@ define void @zero_stride_symbolic(ptr nocapture %A, i32 %n, i32 %zero) {
; CHECK-LABEL: 'zero_stride_symbolic'
; CHECK-NEXT: Determining loop execution counts for: @zero_stride_symbolic
; CHECK-NEXT: 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-NEXT: Loop %for.body: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %for.body: symbolic max 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-NEXT: Loop %for.body: Predicated 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-NEXT: Predicates:
Expand Down
8 changes: 4 additions & 4 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: constant max backedge-taken count is 10000
; CHECK-NEXT: Loop %bb3: constant max backedge-taken count is i32 10000
; CHECK-NEXT: Loop %bb3: symbolic max backedge-taken count is 10000
; CHECK-NEXT: Loop %bb3: Predicated backedge-taken count is 10000
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -41,7 +41,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: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %preheader: constant max backedge-taken count is i64 7
; CHECK-NEXT: Loop %preheader: symbolic max backedge-taken count is 7
; CHECK-NEXT: Loop %preheader: Predicated backedge-taken count is 7
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -104,7 +104,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: constant max backedge-taken count is -1431655751
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -1431655751
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is -1431655751
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is -1431655751
; CHECK-NEXT: Predicates:
Expand All @@ -128,7 +128,7 @@ define void @non_zero_from_loop_guard(i16 %n) {
; CHECK-LABEL: 'non_zero_from_loop_guard'
; CHECK-NEXT: Determining loop execution counts for: @non_zero_from_loop_guard
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (%n /u 2))<nsw>
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 32766
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i16 32766
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (%n /u 2))<nsw>
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (%n /u 2))<nsw>
; CHECK-NEXT: Predicates:
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/Analysis/ScalarEvolution/trip-count10.ll
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand All @@ -51,7 +51,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: constant max backedge-taken count is false
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i1 false
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is false
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is false
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -132,7 +132,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: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 1
; CHECK-NEXT: Predicates:
Expand All @@ -158,7 +158,7 @@ define void @exit_orcond_nsw(ptr %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: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body.i: constant max backedge-taken count is i32 1
; CHECK-NEXT: Loop %for.body.i: symbolic max backedge-taken count is 1
; CHECK-NEXT: Loop %for.body.i: Unpredictable predicated backedge-taken count.
;
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 @@ -7,7 +7,7 @@ define zeroext i16 @test(ptr nocapture %p, i32 %len) nounwind readonly {
; CHECK-LABEL: 'test'
; CHECK-NEXT: Determining loop execution counts for: @test
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((-2 + %len) /u 2)
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 1073741823
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 1073741823
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is ((-2 + %len) /u 2)
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-2 + %len) /u 2)
; CHECK-NEXT: Predicates:
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 @@ -7,7 +7,7 @@ define void @u_0(i8 %rhs) {
; CHECK-LABEL: 'u_0'
; CHECK-NEXT: 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: constant max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-100 + (-1 * %rhs) + ((100 + %rhs) umax %rhs)), actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-100 + (-1 * %rhs) + ((100 + %rhs) umax %rhs))
; CHECK-NEXT: Predicates:
Expand All @@ -33,7 +33,7 @@ define void @u_1(i8 %start) {
; CHECK-LABEL: 'u_1'
; CHECK-NEXT: 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: constant max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 * %start) + ((-100 + %start) umax %start)), actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 * %start) + ((-100 + %start) umax %start))
; CHECK-NEXT: Predicates:
Expand All @@ -60,7 +60,7 @@ define void @s_0(i8 %rhs) {
; CHECK-LABEL: 's_0'
; CHECK-NEXT: 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: constant max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-100 + (-1 * %rhs) + ((100 + %rhs) smax %rhs)), actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-100 + (-1 * %rhs) + ((100 + %rhs) smax %rhs))
; CHECK-NEXT: Predicates:
Expand All @@ -87,7 +87,7 @@ define void @s_1(i8 %start) {
; CHECK-LABEL: 's_1'
; CHECK-NEXT: 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: constant max backedge-taken count is -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 -100, actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 * %start) + ((-100 + %start) smax %start)), actual taken count either this or zero.
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 * %start) + ((-100 + %start) smax %start))
; CHECK-NEXT: Predicates:
Expand All @@ -114,7 +114,7 @@ define void @s_2(i8 %start) {
; CHECK-LABEL: 's_2'
; CHECK-NEXT: 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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 * ((-100 + %start) smin %start)) + %start)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 * ((-100 + %start) smin %start)) + %start)
; CHECK-NEXT: Predicates:
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, ptr %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: constant max backedge-taken count is 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is ((-1 * %n) + ((1 + %n) smax %n)), 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:
Expand All @@ -31,7 +31,7 @@ define void @s32_max2(i32 %n, ptr %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: constant max backedge-taken count is 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is ((-1 * %n) + ((2 + %n) smax %n)), 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:
Expand All @@ -57,7 +57,7 @@ define void @s32_maxx(i32 %n, i32 %x, ptr %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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is ((-1 * %n) + ((%n + %x) smax %n))
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((%n + %x) smax %n))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -85,7 +85,7 @@ define void @s32_max2_unpredictable_exit(i32 %n, i32 %x, ptr %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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 2
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is (((-1 * %n) + ((2 + %n) smax %n)) umin ((-1 * %n) + %x))
; CHECK-NEXT: symbolic max exit count for do.body: ((-1 * %n) + %x)
; CHECK-NEXT: symbolic max exit count for if.end: ((-1 * %n) + ((2 + %n) smax %n))
Expand Down Expand Up @@ -117,7 +117,7 @@ define void @u32_max1(i32 %n, ptr %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: constant max backedge-taken count is 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 1, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is ((-1 * %n) + ((1 + %n) umax %n)), 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:
Expand All @@ -143,7 +143,7 @@ define void @u32_max2(i32 %n, ptr %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: constant max backedge-taken count is 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 2, actual taken count either this or zero.
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is ((-1 * %n) + ((2 + %n) umax %n)), 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:
Expand All @@ -169,7 +169,7 @@ define void @u32_maxx(i32 %n, i32 %x, ptr %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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 -1
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is ((-1 * %n) + ((%n + %x) umax %n))
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is ((-1 * %n) + ((%n + %x) umax %n))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -197,7 +197,7 @@ define void @u32_max2_unpredictable_exit(i32 %n, i32 %x, ptr %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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 2
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is (((-1 * %n) + ((2 + %n) umax %n)) umin ((-1 * %n) + %x))
; CHECK-NEXT: symbolic max exit count for do.body: ((-1 * %n) + %x)
; CHECK-NEXT: symbolic max exit count for if.end: ((-1 * %n) + ((2 + %n) umax %n))
Expand Down
6 changes: 3 additions & 3 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}<nuw><nsw><%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: constant max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4097
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -43,7 +43,7 @@ define void @umin_signed_check(i64 %n) {
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%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: constant max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4097
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (1 + (4096 umin %n))<nuw><nsw>
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -74,7 +74,7 @@ define void @smin_signed_check(i64 %n) {
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%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: constant max backedge-taken count is 4097
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4097
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (0 smax (1 + (4096 smin %n))<nsw>)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (0 smax (1 + (4096 smin %n))<nsw>)
; CHECK-NEXT: Predicates:
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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %bb3: constant max backedge-taken count is i32 4
; CHECK-NEXT: Loop %bb3: symbolic max backedge-taken count is 4
; CHECK-NEXT: Loop %bb3: Predicated backedge-taken count is 4
; CHECK-NEXT: Predicates:
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(ptr %sha_info, ptr %data1, i32, ptr %buffer_add
; 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: constant max backedge-taken count is 33554431
; CHECK-NEXT: Loop %bb3.i: constant max backedge-taken count is i32 33554431
; CHECK-NEXT: Loop %bb3.i: symbolic max backedge-taken count is ((63 + (-1 * (63 smin %0)) + %0) /u 64)
; CHECK-NEXT: Loop %bb3.i: Predicated backedge-taken count is ((63 + (-1 * (63 smin %0)) + %0) /u 64)
; CHECK-NEXT: Predicates:
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(ptr %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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-11 + %n)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-11 + %n)
; CHECK-NEXT: Predicates:
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: constant max backedge-taken count is 1
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i8 1
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is 1
; CHECK-NEXT: symbolic max exit count for bb: ***COULDNOTCOMPUTE***
; CHECK-NEXT: symbolic max exit count for bb2: 1
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(ptr %x1, ptr %c, ptr %b, ptr %a, ptr %q, ptr %x1.sub,
; 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: constant max backedge-taken count is 8
; CHECK-NEXT: Loop %bb7.i: constant max backedge-taken count is i32 8
; CHECK-NEXT: Loop %bb7.i: symbolic max backedge-taken count is 8
; CHECK-NEXT: Loop %bb7.i: Unpredictable predicated backedge-taken count.
;
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: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -2
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %ecx)
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %ecx)
; CHECK-NEXT: Predicates:
Expand Down
42 changes: 21 additions & 21 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: constant max backedge-taken count is 6
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 6
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %n)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -55,7 +55,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: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 5
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -97,7 +97,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -139,7 +139,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: constant max backedge-taken count is 6
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 6
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %n)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
; CHECK-NEXT: Predicates:
Expand Down Expand Up @@ -169,7 +169,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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + %n) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + %n) /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -191,7 +191,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: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 5
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 smax %n))<nsw>
; CHECK-NEXT: Predicates:
Expand All @@ -213,7 +213,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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-2 + (3 smax %n))<nsw> /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-2 + (3 smax %n))<nsw> /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -235,7 +235,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: constant max backedge-taken count is -1
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 -1
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
; CHECK-NEXT: Predicates:
Expand All @@ -257,7 +257,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: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 7
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax %n)) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax %n)) /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -279,7 +279,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: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 5
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Predicates:
Expand All @@ -302,7 +302,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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -325,7 +325,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Predicates:
Expand All @@ -348,7 +348,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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -371,7 +371,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: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 -2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Predicates:
Expand All @@ -394,7 +394,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: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 7
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -417,7 +417,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: constant max backedge-taken count is 5
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 5
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (2 * %n))
; CHECK-NEXT: Predicates:
Expand All @@ -440,7 +440,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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -463,7 +463,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: constant max backedge-taken count is 4
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 4
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-2 + (2 * %n))
; CHECK-NEXT: Predicates:
Expand All @@ -486,7 +486,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: constant max backedge-taken count is 2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-2 + (2 * %n)) /u 2)
; CHECK-NEXT: Predicates:
Expand All @@ -509,7 +509,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: constant max backedge-taken count is -2
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 -2
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
; CHECK-NEXT: Predicates:
Expand All @@ -532,7 +532,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: constant max backedge-taken count is 7
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i4 7
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
; CHECK-NEXT: Predicates:
Expand Down
Loading