[SCEV] Include type when printing constant max backedge taken count
When printing the result of the analysis, i8 -1 and i64 -1 are quite different in terms of analysis quality. In a recent conversion with a new contributor, we ran into exactly this confusion. Adding the type for constant scevs more globally seems worthwhile, but introduces a much larger test diff. I'm splitting this off first since it addresses the immediate need, and then going to do some further changes to clarify a few related bits of analysis result output.
This commit is contained in:
committed by
Philip Reames
parent
67c82d6ffb
commit
7755c26195
@@ -13501,7 +13501,8 @@ static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,
|
||||
|
||||
auto *ConstantBTC = SE->getConstantMaxBackedgeTakenCount(L);
|
||||
if (!isa<SCEVCouldNotCompute>(ConstantBTC)) {
|
||||
OS << "constant max backedge-taken count is " << *ConstantBTC;
|
||||
OS << "constant max backedge-taken count is "
|
||||
<< *ConstantBTC->getType() << " " << *ConstantBTC;
|
||||
if (SE->isBackedgeTakenCountMaxOrZero(L))
|
||||
OS << ", actual taken count either this or zero.";
|
||||
} else {
|
||||
|
||||
@@ -11,7 +11,7 @@ define i32 @f(i32 %x) nounwind readnone {
|
||||
; CHECK-LABEL: 'f'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f
|
||||
; CHECK-NEXT: Loop %bb: backedge-taken count is ((-5 + %x) /u 3)
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is 1431655764
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 1431655764
|
||||
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is ((-5 + %x) /u 3)
|
||||
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is ((-5 + %x) /u 3)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -9,7 +9,7 @@ define i32 @f(i32 %x) nounwind readnone {
|
||||
; CHECK-LABEL: 'f'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f
|
||||
; CHECK-NEXT: Loop %bb: backedge-taken count is (((-3 + (-1 * (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))<nuw><nsw> + (-1 * %x) + (1000 umax (3 + %x))) /u 3) + (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is 334
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 334
|
||||
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is (((-3 + (-1 * (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))<nuw><nsw> + (-1 * %x) + (1000 umax (3 + %x))) /u 3) + (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))
|
||||
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is (((-3 + (-1 * (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))<nuw><nsw> + (-1 * %x) + (1000 umax (3 + %x))) /u 3) + (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -66,7 +66,7 @@ define void @mask-high(i64 %arg, ptr dereferenceable(4) %arg1) {
|
||||
; CHECK-NEXT: --> {(2 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>,+,1}<%bb6> U: full-set S: full-set Exits: (1 + ((sext i32 %i to i64) smax (1 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>))<nsw> LoopDispositions: { %bb6: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @mask-high
|
||||
; CHECK-NEXT: Loop %bb6: backedge-taken count is (-1 + (-16 * (%arg /u 16)) + ((sext i32 %i to i64) smax (1 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>))
|
||||
; CHECK-NEXT: Loop %bb6: constant max backedge-taken count is -9223372034707292162
|
||||
; CHECK-NEXT: Loop %bb6: constant max backedge-taken count is i64 -9223372034707292162
|
||||
; CHECK-NEXT: Loop %bb6: symbolic max backedge-taken count is (-1 + (-16 * (%arg /u 16)) + ((sext i32 %i to i64) smax (1 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>))
|
||||
; CHECK-NEXT: Loop %bb6: Predicated backedge-taken count is (-1 + (-16 * (%arg /u 16)) + ((sext i32 %i to i64) smax (1 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>))
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -27,11 +27,11 @@ define void @test(ptr %p) {
|
||||
; CHECK-NEXT: --> {{\{\{}}%iv,+,1}<%loop2>,+,1}<%loop3> U: full-set S: full-set --> {%iv,+,1}<%loop2> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop.header: Variant, %loop2: Variant, %loop3: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test
|
||||
; CHECK-NEXT: Loop %loop2: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop2: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %loop2: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %loop2: symbolic max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %loop2: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop3: backedge-taken count is false
|
||||
; CHECK-NEXT: Loop %loop3: constant max backedge-taken count is false
|
||||
; CHECK-NEXT: Loop %loop3: constant max backedge-taken count is i1 false
|
||||
; CHECK-NEXT: Loop %loop3: symbolic max backedge-taken count is false
|
||||
; CHECK-NEXT: Loop %loop3: Predicated backedge-taken count is false
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -12,7 +12,7 @@ define i32 @test_1_non_negative(i32 %n) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: (1 smax %n) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_1_non_negative
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (1 smax %n))<nsw>
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (1 smax %n))<nsw>
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (1 smax %n))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -51,7 +51,7 @@ define i32 @test_2_non_positive(i32 %n) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: (1 smax %n) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_2_non_positive
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (1 smax %n))<nsw>
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (1 smax %n))<nsw>
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (1 smax %n))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -44,7 +44,7 @@ define void @alloca_icmp_null_exit_count() {
|
||||
; CHECK-NEXT: --> (%cmp2 umin %cmp1) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @alloca_icmp_null_exit_count
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 2
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -14,7 +14,7 @@ define void @loop_guard_improves_exact_backedge_taken_count_1(i32 %conv) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,2) S: [1,2) Exits: 1 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @loop_guard_improves_exact_backedge_taken_count_1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -50,7 +50,7 @@ define void @loop_guard_improves_exact_backedge_taken_count_2(i32 %conv) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,3) S: [1,3) Exits: (1 + (zext i1 (trunc i32 %conv to i1) to i64))<nuw><nsw> LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @loop_guard_improves_exact_backedge_taken_count_2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i1 (trunc i32 %conv to i1) to i64)
|
||||
; 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 (zext i1 (trunc i32 %conv to i1) to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i1 (trunc i32 %conv to i1) to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -30,7 +30,7 @@ define void @test(ptr %arg) {
|
||||
; CHECK-NEXT: Loop %loop2.header: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop2.header: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for loop2.latch: false
|
||||
; CHECK-NEXT: Loop %loop2.header: constant max backedge-taken count is false
|
||||
; CHECK-NEXT: Loop %loop2.header: constant max backedge-taken count is i1 false
|
||||
; CHECK-NEXT: Loop %loop2.header: symbolic max backedge-taken count is false
|
||||
; CHECK-NEXT: symbolic max exit count for loop2.header: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for loop2.latch: false
|
||||
|
||||
@@ -47,7 +47,7 @@ define i32 @test_step_1_flags(i32 %n) {
|
||||
; DEFAULT-NEXT: --> {(-2 + %n),+,-1}<nw><%loop> U: full-set S: full-set Exits: -1 LoopDispositions: { %loop: Computable }
|
||||
; DEFAULT-NEXT: Determining loop execution counts for: @test_step_1_flags
|
||||
; DEFAULT-NEXT: Loop %loop: backedge-taken count is (-1 + %n)
|
||||
; DEFAULT-NEXT: Loop %loop: constant max backedge-taken count is 2147483646
|
||||
; DEFAULT-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
|
||||
; DEFAULT-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %n)
|
||||
; DEFAULT-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
|
||||
; DEFAULT-NEXT: Predicates:
|
||||
@@ -73,7 +73,7 @@ define i32 @test_step_1_flags(i32 %n) {
|
||||
; EXPENSIVE_SHARPENING-NEXT: --> {(-2 + %n),+,-1}<nsw><%loop> U: full-set S: [-1,2147483646) Exits: -1 LoopDispositions: { %loop: Computable }
|
||||
; EXPENSIVE_SHARPENING-NEXT: Determining loop execution counts for: @test_step_1_flags
|
||||
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: backedge-taken count is (-1 + %n)
|
||||
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: constant max backedge-taken count is 2147483646
|
||||
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
|
||||
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %n)
|
||||
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
|
||||
; EXPENSIVE_SHARPENING-NEXT: Predicates:
|
||||
|
||||
@@ -14,7 +14,7 @@ define void @test_and(i16 %in) {
|
||||
; CHECK-NEXT: --> (%_tmp10.i umin %exitcond.i) U: full-set S: full-set Exits: true LoopDispositions: { %bb1.i: Variant, %bb2: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_and
|
||||
; CHECK-NEXT: Loop %bb1.i: backedge-taken count is (1 + (-1 * %in))
|
||||
; CHECK-NEXT: Loop %bb1.i: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %bb1.i: constant max backedge-taken count is i16 -1
|
||||
; CHECK-NEXT: Loop %bb1.i: symbolic max backedge-taken count is (1 + (-1 * %in))
|
||||
; CHECK-NEXT: Loop %bb1.i: Predicated backedge-taken count is (1 + (-1 * %in))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -56,7 +56,7 @@ define void @test_or() {
|
||||
; CHECK-NEXT: --> (%C11 umax %C5) U: full-set S: full-set Exits: false LoopDispositions: { %BB: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_or
|
||||
; CHECK-NEXT: Loop %BB: backedge-taken count is undef
|
||||
; CHECK-NEXT: Loop %BB: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %BB: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %BB: symbolic max backedge-taken count is undef
|
||||
; CHECK-NEXT: Loop %BB: Predicated backedge-taken count is undef
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -9,7 +9,7 @@ define void @f_0() {
|
||||
; CHECK-LABEL: 'f_0'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f_0
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 5
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 5
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 5
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 5
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 5
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -12,7 +12,7 @@ define i32 @logical_and_2ops(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: @logical_and_2ops
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %m)
|
||||
; 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 umin_seq %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -42,7 +42,7 @@ define i32 @logical_or_2ops(i32 %n, i32 %m) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p0) umin_seq (true + %cond_p1))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_2ops
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %m)
|
||||
; 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 umin_seq %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -74,7 +74,7 @@ define i32 @logical_and_3ops(i32 %n, i32 %m, i32 %k) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin_seq %cond_p1 umin_seq %cond_p2) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_3ops
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %m umin_seq %k)
|
||||
; 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 umin_seq %m umin_seq %k)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %m umin_seq %k)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -108,7 +108,7 @@ define i32 @logical_or_3ops(i32 %n, i32 %m, i32 %k) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p0) umin_seq (true + %cond_p1) umin_seq (true + %cond_p2))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_3ops
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %m umin_seq %k)
|
||||
; 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 umin_seq %m umin_seq %k)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %m umin_seq %k)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -144,7 +144,7 @@ define i32 @logical_or_3ops_duplicate(i32 %n, i32 %m, i32 %k) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p0) umin_seq ((true + %cond_p1) umin (true + %cond_p2)) umin_seq (true + %cond_p3))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_3ops_duplicate
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %m umin_seq %k)
|
||||
; 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 umin_seq %m umin_seq %k)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %m umin_seq %k)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -182,7 +182,7 @@ define i32 @logical_or_3ops_redundant_uminseq_operand(i32 %n, i32 %m, i32 %k) {
|
||||
; CHECK-NEXT: --> (true + (((true + %cond_p0) umin (true + %cond_p1)) umin_seq (true + %cond_p2))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_3ops_redundant_uminseq_operand
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((%n umin %m) umin_seq %k)
|
||||
; 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 umin %m) umin_seq %k)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((%n umin %m) umin_seq %k)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -219,7 +219,7 @@ define i32 @logical_or_3ops_redundant_umin_operand(i32 %n, i32 %m, i32 %k) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p0) umin_seq (true + %cond_p1) umin_seq (true + %cond_p2))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_3ops_redundant_umin_operand
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %k umin_seq %m)
|
||||
; 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 umin_seq %k umin_seq %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %k umin_seq %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -258,7 +258,7 @@ define i32 @logical_or_4ops_redundant_operand_across_umins(i32 %n, i32 %m, i32 %
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p0) umin_seq (true + %cond_p1) umin_seq (true + %cond_p2))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_4ops_redundant_operand_across_umins
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((%n umin %m) umin_seq %k umin_seq %q)
|
||||
; 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 umin %m) umin_seq %k umin_seq %q)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((%n umin %m) umin_seq %k umin_seq %q)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -298,7 +298,7 @@ define i32 @logical_or_3ops_operand_wise_redundant_umin(i32 %n, i32 %m, i32 %k)
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p0) umin_seq (true + %cond_p1) umin_seq (true + %cond_p2))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_3ops_operand_wise_redundant_umin
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((%n umin %m) umin_seq %k)
|
||||
; 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 umin %m) umin_seq %k)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((%n umin %m) umin_seq %k)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -336,7 +336,7 @@ define i32 @logical_or_3ops_partially_redundant_umin(i32 %n, i32 %m, i32 %k) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p0) umin_seq (true + %cond_p1))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_3ops_partially_redundant_umin
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq (%m umin %k))
|
||||
; 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 umin_seq (%m umin %k))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq (%m umin %k))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -382,13 +382,13 @@ define i32 @logical_or_5ops_redundant_opearand_of_inner_uminseq(i32 %a, i32 %b,
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p5) umin_seq (true + %cond_p6) umin_seq (true + %cond_p7))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_5ops_redundant_opearand_of_inner_uminseq
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%a umin_seq %b umin_seq ((%e umin_seq %d) umin %c))
|
||||
; 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 (%a umin_seq %b umin_seq ((%e umin_seq %d) umin %c))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%a umin_seq %b umin_seq ((%e umin_seq %d) umin %c))
|
||||
; CHECK-NEXT: Predicates:
|
||||
; CHECK-NEXT: Loop %loop: Trip multiple is 1
|
||||
; CHECK-NEXT: Loop %first.loop: backedge-taken count is (%e umin_seq %d umin_seq %a)
|
||||
; CHECK-NEXT: Loop %first.loop: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %first.loop: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %first.loop: symbolic max backedge-taken count is (%e umin_seq %d umin_seq %a)
|
||||
; CHECK-NEXT: Loop %first.loop: Predicated backedge-taken count is (%e umin_seq %d umin_seq %a)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -435,7 +435,7 @@ define i32 @logical_and_2ops_and_constant(i32 %n, i32 %m, i32 %k) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_p1) umin (true + %cond_p0))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_2ops_and_constant
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (42 umin %n)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 42
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 42
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (42 umin %n)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (42 umin %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -474,13 +474,13 @@ define i32 @computeSCEVAtScope(i32 %d.0) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.cond4> U: [1,2) S: [1,2) Exits: 1 LoopDispositions: { %for.cond4: Computable, %while.cond: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @computeSCEVAtScope
|
||||
; CHECK-NEXT: Loop %for.cond: backedge-taken count is (-1 * %d.0)
|
||||
; 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 (-1 * %d.0)
|
||||
; CHECK-NEXT: Loop %for.cond: Predicated backedge-taken count is (-1 * %d.0)
|
||||
; CHECK-NEXT: Predicates:
|
||||
; CHECK-NEXT: Loop %for.cond: Trip multiple is 1
|
||||
; CHECK-NEXT: Loop %for.cond4: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %for.cond4: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %for.cond4: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %for.cond4: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %for.cond4: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -543,7 +543,7 @@ define i64 @uminseq_vs_ptrtoint_complexity(i64 %n, i64 %m, ptr %ptr) {
|
||||
; CHECK-NEXT: --> {(ptrtoint ptr %ptr to i64),+,1}<%loop> U: full-set S: full-set --> ((%n umin_seq %m) + (ptrtoint ptr %ptr to i64)) U: full-set S: full-set
|
||||
; CHECK-NEXT: Determining loop execution counts for: @uminseq_vs_ptrtoint_complexity
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %m)
|
||||
; 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 (%n umin_seq %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -577,7 +577,7 @@ define i32 @logical_and_implies_poison1(i32 %n) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin %cond_p1) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_poison1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((1 + %n) umin %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 + %n) umin %n)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((1 + %n) umin %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -610,7 +610,7 @@ define i32 @logical_and_implies_poison2(i32 %n) {
|
||||
; CHECK-NEXT: --> (%cond_p1 umin %cond_p0) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_poison2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((1 + %n) umin %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 + %n) umin %n)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((1 + %n) umin %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -643,7 +643,7 @@ define i32 @logical_and_implies_poison3(i32 %n, i32 %m) {
|
||||
; CHECK-NEXT: --> (%cond_p1 umin %cond_p0) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_poison3
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((%n + %m) umin %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 + %m) umin %n)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((%n + %m) umin %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -676,7 +676,7 @@ define i32 @logical_and_implies_poison_wrong_direction(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: @logical_and_implies_poison_wrong_direction
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq (%n + %m))
|
||||
; 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 umin_seq (%n + %m))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq (%n + %m))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -707,7 +707,7 @@ define i32 @logical_and_implies_poison_noundef(i32 %n, i32 noundef %m) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin %cond_p1) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_poison_noundef
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin %m)
|
||||
; 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 umin %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -737,7 +737,7 @@ define i32 @logical_and_implies_poison_noundef_wrong_direction(i32 %n, i32 nound
|
||||
; 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: @logical_and_implies_poison_noundef_wrong_direction
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%m umin_seq %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 (%m umin_seq %n)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%m umin_seq %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -771,7 +771,7 @@ define i32 @logical_and_implies_poison_complex1(i32 %n, i32 %m) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin %cond_p1) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_poison_complex1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((%n + %m) umin (1 + %n + %m))
|
||||
; 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 + %m) umin (1 + %n + %m))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((%n + %m) umin (1 + %n + %m))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -807,7 +807,7 @@ define i32 @logical_and_implies_poison_complex2(i32 %n, i32 %m, i32 %l) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin %cond_p1) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_poison_complex2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((%n + %m) umin (%n + %m + %l))
|
||||
; 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 + %m) umin (%n + %m + %l))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((%n + %m) umin (%n + %m + %l))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -843,7 +843,7 @@ define i32 @logical_and_implies_poison_complex_wrong_direction(i32 %n, i32 %m, i
|
||||
; 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: @logical_and_implies_poison_complex_wrong_direction
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((%n + %m) umin_seq (%n + %m + %l))
|
||||
; 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 + %m) umin_seq (%n + %m + %l))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((%n + %m) umin_seq (%n + %m + %l))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -879,7 +879,7 @@ define i32 @logical_and_implies_multiple_ops(i32 %n, i32 %m) {
|
||||
; CHECK-NEXT: --> ((%cond_p0 umin %cond_p1) umin_seq %cond_p2) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_multiple_ops
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (((1 + %n) umin %n) umin_seq %m)
|
||||
; 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 + %n) umin %n) umin_seq %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (((1 + %n) umin %n) umin_seq %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -916,7 +916,7 @@ define i32 @logical_and_implies_multiple_ops2(i32 %n, i32 %m) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin_seq (%cond_p1 umin %cond_p2)) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_multiple_ops2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq ((1 + %n) umin %m))
|
||||
; 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 umin_seq ((1 + %n) umin %m))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq ((1 + %n) umin %m))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -953,7 +953,7 @@ define i32 @logical_and_implies_multiple_ops3(i32 %n, i32 %m) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin_seq %cond_p1 umin_seq %cond_p2) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_implies_multiple_ops3
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%m umin_seq ((1 + %n) umin %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 (%m umin_seq ((1 + %n) umin %n))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%m umin_seq ((1 + %n) umin %n))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -990,7 +990,7 @@ define i32 @logical_and_not_zero(i16 %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: @logical_and_not_zero
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((1 + (zext i16 %n to i32))<nuw><nsw> umin %m)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65536
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65536
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((1 + (zext i16 %n to i32))<nuw><nsw> umin %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((1 + (zext i16 %n to i32))<nuw><nsw> umin %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1026,7 +1026,7 @@ define i32 @logical_and_not_zero_wrong_order(i16 %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: @logical_and_not_zero_wrong_order
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%m umin_seq (1 + (zext i16 %n to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65536
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65536
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%m umin_seq (1 + (zext i16 %n to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%m umin_seq (1 + (zext i16 %n to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1058,7 +1058,7 @@ define i32 @logical_and_not_zero_needs_context(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: @logical_and_not_zero_needs_context
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%n umin_seq %m)
|
||||
; 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 umin_seq %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%n umin_seq %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1097,7 +1097,7 @@ define i32 @logical_and_known_smaller(i16 %n, i16 %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: @logical_and_known_smaller
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65535
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65535
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1136,7 +1136,7 @@ define i32 @logical_and_known_smaller_equal(i16 %n, i16 %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: @logical_and_known_smaller_equal
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65535
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65535
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1175,7 +1175,7 @@ define i32 @logical_and_not_known_smaller_equal(i16 %n, i16 %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: @logical_and_not_known_smaller_equal
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((zext i16 %n to i32) umin_seq (65534 + (zext i16 %m to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65535
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65535
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((zext i16 %n to i32) umin_seq (65534 + (zext i16 %m to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((zext i16 %n to i32) umin_seq (65534 + (zext i16 %m to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1214,7 +1214,7 @@ define i32 @logical_and_known_greater(i16 %n, i16 %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: @logical_and_known_greater
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65535
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65535
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1253,7 +1253,7 @@ define i32 @logical_and_known_greater_equal(i16 %n, i16 %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: @logical_and_known_greater_equal
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65535
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65535
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i16 %n to i32)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1292,7 +1292,7 @@ define i32 @logical_and_not_known_greater_equal(i16 %n, i16 %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: @logical_and_not_known_greater_equal
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((zext i16 %n to i32) umin (65534 + (zext i16 %m to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 65535
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 65535
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((zext i16 %n to i32) umin (65534 + (zext i16 %m to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((zext i16 %n to i32) umin (65534 + (zext i16 %m to i32))<nuw><nsw>)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1325,7 +1325,7 @@ define i32 @logical_and_zero_arg1(i32 %n) {
|
||||
; CHECK-NEXT: --> (%cond_p0 umin_seq %cond_p1) U: full-set S: full-set Exits: false LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_zero_arg1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1355,7 +1355,7 @@ define i32 @logical_and_zero_arg2(i32 %n) {
|
||||
; CHECK-NEXT: --> (%cond_p1 umin %cond_p0) U: full-set S: full-set Exits: false LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_zero_arg2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -14,7 +14,7 @@ define void @logical_and_m_const(i32 %n) {
|
||||
; CHECK-NEXT: --> (%cond_i2 umin %cond_i) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_m_const
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (2 umin %n)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (2 umin %n)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (2 umin %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -46,7 +46,7 @@ define void @logical_and_nonzero(i32 %m) {
|
||||
; CHECK-NEXT: --> (%cond_i umin_seq %cond_i2) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_nonzero
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (2 umin %m)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (2 umin %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (2 umin %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -79,7 +79,7 @@ define void @logical_and_zero(i32 %m) {
|
||||
; CHECK-NEXT: --> (%cond_i umin_seq %cond_i2) U: full-set S: full-set Exits: false LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_and_zero
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -143,7 +143,7 @@ define void @logical_or_m_const(i32 %n) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_i) umin (true + %cond_i2))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_m_const
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (2 umin %n)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (2 umin %n)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (2 umin %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -175,7 +175,7 @@ define void @logical_or_nonzero(i32 %m) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_i) umin_seq (true + %cond_i2))) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_nonzero
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (2 umin %m)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (2 umin %m)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (2 umin %m)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -208,7 +208,7 @@ define void @logical_or_zero(i32 %m) {
|
||||
; CHECK-NEXT: --> (true + ((true + %cond_i) umin_seq (true + %cond_i2))) U: full-set S: full-set Exits: true LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @logical_or_zero
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -8,7 +8,7 @@ define void @f(i32 %n, ptr %ptr) {
|
||||
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop: 0
|
||||
; CHECK-NEXT: exit count for be: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: symbolic max exit count for loop: 0
|
||||
; CHECK-NEXT: symbolic max exit count for be: ***COULDNOTCOMPUTE***
|
||||
|
||||
@@ -10,7 +10,7 @@ define void @sle_pre_inc(i32 %len) willreturn {
|
||||
; CHECK-LABEL: 'sle_pre_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sle_pre_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (0 smax (1 + %len))
|
||||
; 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 (0 smax (1 + %len))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (0 smax (1 + %len))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -34,7 +34,7 @@ define void @sle_post_inc(i32 %len) willreturn {
|
||||
; CHECK-LABEL: 'sle_post_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sle_post_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (1 smax (1 + %len)))<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 + (1 smax (1 + %len)))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 smax (1 + %len)))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -80,7 +80,7 @@ define void @ule_pre_inc(i32 %len) willreturn {
|
||||
; CHECK-LABEL: 'ule_pre_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ule_pre_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (1 + %len)
|
||||
; 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 + %len)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (1 + %len)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -104,7 +104,7 @@ define void @ule_post_inc(i32 %len) willreturn {
|
||||
; CHECK-LABEL: 'ule_post_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ule_post_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (1 umax (1 + %len)))
|
||||
; 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 + (1 umax (1 + %len)))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (1 umax (1 + %len)))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -150,7 +150,7 @@ define void @sge_pre_inc(i32 %end) willreturn {
|
||||
; CHECK-LABEL: 'sge_pre_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sge_pre_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (100 + (-1 * (100 smin (-1 + %end))))
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2147483548
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -2147483548
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (100 + (-1 * (100 smin (-1 + %end))))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (100 + (-1 * (100 smin (-1 + %end))))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -174,7 +174,7 @@ define void @sge_post_inc(i32 %end) willreturn {
|
||||
; CHECK-LABEL: 'sge_post_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sge_post_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (100 + (-1 * (100 smin (-1 + %end))))
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2147483548
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -2147483548
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (100 + (-1 * (100 smin (-1 + %end))))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (100 + (-1 * (100 smin (-1 + %end))))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -220,7 +220,7 @@ define void @use_pre_inc(i32 %end) willreturn {
|
||||
; CHECK-LABEL: 'use_pre_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @use_pre_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (100 + (-1 * (100 umin (-1 + %end)))<nsw>)<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 100
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 100
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (100 + (-1 * (100 umin (-1 + %end)))<nsw>)<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (100 + (-1 * (100 umin (-1 + %end)))<nsw>)<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -244,7 +244,7 @@ define void @use_post_inc(i32 %end) willreturn {
|
||||
; CHECK-LABEL: 'use_post_inc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @use_post_inc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (99 + (-1 * (99 umin (-1 + %end)))<nsw>)<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 99
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 99
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (99 + (-1 * (99 umin (-1 + %end)))<nsw>)<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (99 + (-1 * (99 umin (-1 + %end)))<nsw>)<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -290,7 +290,7 @@ define void @pr54191(i64 %n) mustprogress {
|
||||
; CHECK-LABEL: 'pr54191'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @pr54191
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-2 + %n) /u 2)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4611686018427387902
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4611686018427387902
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-2 + %n) /u 2)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-2 + %n) /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -24,13 +24,13 @@ define void @subrecurrences(i32 %outer_l, i32 %inner_l, i32 %val) {
|
||||
; CHECK-NEXT: --> (1 /u {{\{\{}}-1,+,-1}<nw><%outer>,+,1}<nsw><%inner>) U: [0,2) S: [0,2) Exits: (1 /u {(-1 + %inner_l),+,-1}<nw><%outer>) LoopDispositions: { %inner: Computable, %outer: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @subrecurrences
|
||||
; CHECK-NEXT: Loop %inner: backedge-taken count is %inner_l
|
||||
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %inner: symbolic max backedge-taken count is %inner_l
|
||||
; CHECK-NEXT: Loop %inner: Predicated backedge-taken count is %inner_l
|
||||
; CHECK-NEXT: Predicates:
|
||||
; CHECK-NEXT: Loop %inner: Trip multiple is 1
|
||||
; CHECK-NEXT: Loop %outer: backedge-taken count is %outer_l
|
||||
; CHECK-NEXT: Loop %outer: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %outer: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %outer: symbolic max backedge-taken count is %outer_l
|
||||
; CHECK-NEXT: Loop %outer: Predicated backedge-taken count is %outer_l
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -30,7 +30,7 @@ define void @test-add-nsw(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-nsw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -69,7 +69,7 @@ define void @test-add-nuw(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -109,7 +109,7 @@ define void @test-add-scope-invariant(ptr %input, i32 %needle) {
|
||||
; CHECK-NEXT: --> ((4 * (sext i32 {(1 + %offset)<nuw><nsw>,+,1}<nuw><%loop> to i64))<nsw> + %input) U: full-set S: full-set Exits: ((4 * (sext i32 %needle to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-scope-invariant
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %offset) + %needle)
|
||||
; 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 + (-1 * %offset) + %needle)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %offset) + %needle)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -392,7 +392,7 @@ define void @test-add-nuw-from-icmp(ptr %input, i32 %offset,
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-nuw-from-icmp
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -432,7 +432,7 @@ define void @test-add-no-load(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-no-load
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -470,7 +470,7 @@ define void @test-add-not-header(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-not-header
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -509,7 +509,7 @@ define void @test-add-not-header2(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-not-header2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -552,7 +552,7 @@ define void @test-add-not-header3(ptr %input, i32 %offset, i32 %numIterations,
|
||||
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for loop2: (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for loop2: (-1 + %numIterations)
|
||||
@@ -593,7 +593,7 @@ define void @test-add-not-header4(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-not-header4
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -670,7 +670,7 @@ define void @test-add-not-header6(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {((4 * (sext i32 (1 + %offset) to i64))<nsw> + %input),+,4}<nw><%loop> U: full-set S: full-set Exits: ((4 * (zext i32 (-1 + %numIterations) to i64))<nuw><nsw> + (4 * (sext i32 (1 + %offset) to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-not-header6
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -709,7 +709,7 @@ define void @test-add-not-header7(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {((4 * (sext i32 (1 + %offset) to i64))<nsw> + %input),+,4}<nw><%loop> U: full-set S: full-set Exits: ((4 * (zext i32 (-1 + %numIterations) to i64))<nuw><nsw> + (4 * (sext i32 (1 + %offset) to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-not-header7
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -750,7 +750,7 @@ define void @test-add-not-header8(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> ((4 * (sext i32 {(1 + %offset),+,1}<nw><%loop> to i64))<nsw> + %input) U: full-set S: full-set Exits: ((4 * (sext i32 (%offset + %numIterations) to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-not-header8
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -791,7 +791,7 @@ define void @test-add-call(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-call
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -829,7 +829,7 @@ define void @test-add-call2(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-call2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -866,7 +866,7 @@ define void @test-gep-propagates-poison(ptr %input, i32 %offset, i32 %numIterati
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-gep-propagates-poison
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -905,7 +905,7 @@ define void @test-add-mul-propagates(ptr %input, i32 %offset, i32 %numIterations
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-mul-propagates
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -944,7 +944,7 @@ define void @test-mul-propagates-poison(ptr %input, i32 %offset, i32 %numIterati
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-mul-propagates-poison
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -982,7 +982,7 @@ define void @test-mul-propagates-poison-2(ptr %input, i32 %offset, i32 %numItera
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-mul-propagates-poison-2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1019,7 +1019,7 @@ define void @test-add-div(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-div
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1054,7 +1054,7 @@ define void @test-add-div2(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-div2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1089,7 +1089,7 @@ define void @test-add-store(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-store
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1132,7 +1132,7 @@ define void @test-add-twice(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-twice
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1176,7 +1176,7 @@ define void @test-mul-nsw(ptr %input, i32 %stride, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-mul-nsw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1214,7 +1214,7 @@ define void @test-mul-nuw(ptr %input, i32 %stride, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-mul-nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1254,7 +1254,7 @@ define void @test-shl-nsw(ptr %input, i32 %start, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {(1 + %start)<nsw>,+,1}<nsw><%loop> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-shl-nsw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; 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 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1294,7 +1294,7 @@ define void @test-shl-nuw-edgecase(ptr %input, i32 %start, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {(1 + %start)<nsw>,+,1}<nsw><%loop> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-shl-nuw-edgecase
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; 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 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1334,7 +1334,7 @@ define void @test-shl-nuw-nsw(ptr %input, i32 %start, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {(1 + %start)<nsw>,+,1}<nsw><%loop> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-shl-nuw-nsw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; 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 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1374,7 +1374,7 @@ define void @test-shl-no-nsw(ptr %input, i32 %start, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {(1 + %start)<nsw>,+,1}<nsw><%loop> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-shl-no-nsw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; 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 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1414,7 +1414,7 @@ define void @test-shl-nsw-edgecase(ptr %input, i32 %start, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {(1 + %start)<nsw>,+,1}<nsw><%loop> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-shl-nsw-edgecase
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; 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 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1452,7 +1452,7 @@ define void @test-shl-nuw(ptr %input, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-shl-nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1493,7 +1493,7 @@ define void @test-sub-no-nsw(ptr %input, i32 %start, i32 %sub, i32 %numIteration
|
||||
; CHECK-NEXT: --> {(1 + %start)<nsw>,+,1}<nsw><%loop> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-sub-no-nsw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; 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 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1535,7 +1535,7 @@ define void @test-sub-nsw(ptr %input, i32 %start, i32 %sub, i32 %numIterations)
|
||||
; CHECK-NEXT: --> {(1 + %start)<nsw>,+,1}<nsw><%loop> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-sub-nsw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; 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 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %start) + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1576,7 +1576,7 @@ define void @test-sub-nsw-lhs-non-negative(ptr %input, i32 %sub, i32 %numIterati
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-sub-nsw-lhs-non-negative
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1621,7 +1621,7 @@ define void @test-sext-sub(ptr %input, i32 %sub, i32 %numIterations) {
|
||||
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for cont: (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for cont: (-1 + %numIterations)
|
||||
@@ -1674,7 +1674,7 @@ define void @test-sub-with-add(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %numIterations LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-sub-with-add
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -78,7 +78,7 @@ define void @test4(i32 %x, i32 %y) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,22) S: [1,22) Exits: 21 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test4
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 20
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 20
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 20
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 20
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 20
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -15,7 +15,7 @@ define void @trip_count_4294967295() {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,4294967296) S: [1,4294967296) Exits: 4294967295 LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_count_4294967295
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 4294967294
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 4294967294
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 4294967294
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 4294967294
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 4294967294
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -44,7 +44,7 @@ define void @trip_count_4294967296() {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,4294967297) S: [1,4294967297) Exits: 4294967296 LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_count_4294967296
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -73,7 +73,7 @@ define void @trip_count_8589935692() {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,8589934593) S: [1,8589934593) Exits: 8589934592 LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_count_8589935692
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 8589934591
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 8589934591
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 8589934591
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 8589934591
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 8589934591
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -102,7 +102,7 @@ define void @trip_count_9223372036854775808() {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-9223372036854775807) S: [1,-9223372036854775807) Exits: -9223372036854775808 LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_count_9223372036854775808
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 9223372036854775807
|
||||
; 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 9223372036854775807
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 9223372036854775807
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -131,7 +131,7 @@ define void @trip_count_18446744073709551615() {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,0) S: [1,0) Exits: -1 LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_count_18446744073709551615
|
||||
; 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 i64 -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:
|
||||
|
||||
@@ -60,7 +60,7 @@ define dso_local i32 @f() {
|
||||
; CHECK-NEXT: Loop %for.cond6: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for for.cond6: 0
|
||||
; CHECK-NEXT: exit count for for.end: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %for.cond6: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %for.cond6: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %for.cond6: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: symbolic max exit count for for.cond6: 0
|
||||
; CHECK-NEXT: symbolic max exit count for for.end: ***COULDNOTCOMPUTE***
|
||||
@@ -68,7 +68,7 @@ define dso_local i32 @f() {
|
||||
; CHECK-NEXT: Loop %inner.loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for inner.loop: 0
|
||||
; CHECK-NEXT: exit count for for.end.3: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %inner.loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %inner.loop: constant max backedge-taken count is i32 0
|
||||
; CHECK-NEXT: Loop %inner.loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: symbolic max exit count for inner.loop: 0
|
||||
; CHECK-NEXT: symbolic max exit count for for.end.3: ***COULDNOTCOMPUTE***
|
||||
@@ -77,7 +77,7 @@ define dso_local i32 @f() {
|
||||
; CHECK-NEXT: exit count for for.cond6: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for inner.loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for for.inc13.3: 2
|
||||
; CHECK-NEXT: Loop %outer.loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %outer.loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %outer.loop: symbolic max backedge-taken count is 2
|
||||
; CHECK-NEXT: symbolic max exit count for for.cond6: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for inner.loop: ***COULDNOTCOMPUTE***
|
||||
|
||||
@@ -18,7 +18,7 @@ define void @f0(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f0
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 127
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 127
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -86,7 +86,7 @@ define void @f1(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,17) S: [1,17) Exits: 16 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 15
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 15
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -147,7 +147,7 @@ define void @f2(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 127
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 127
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -190,7 +190,7 @@ define void @f3(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f3
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i16 127
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 127
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -240,7 +240,7 @@ define void @f4(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f4
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 127
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 127
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -284,7 +284,7 @@ define void @f5(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f5
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i16 127
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 127
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -330,7 +330,7 @@ define void @f6(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f6
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i16 127
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 127
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -379,7 +379,7 @@ define void @f7(i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,129) S: [1,129) Exits: 128 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f7
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i16 127
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 127
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 127
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -40,7 +40,7 @@ target triple = "x86_64-unknown-linux-gnu"
|
||||
define void @test(i32 %n) {
|
||||
; CHECK-LABEL: Classifying expressions for: @test
|
||||
; CHECK: Loop %loop: backedge-taken count is 14
|
||||
; CHECK: Loop %loop: constant max backedge-taken count is 14
|
||||
; CHECK: Loop %loop: constant max backedge-taken count is i32 14
|
||||
; CHECK: Loop %loop: Predicated backedge-taken count is 14
|
||||
|
||||
entry:
|
||||
|
||||
@@ -6,7 +6,7 @@ define i32 @slt_trip_count_with_range(ptr %ptr0, ptr %ptr1) {
|
||||
; CHECK-LABEL: 'slt_trip_count_with_range'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @slt_trip_count_with_range
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %limit)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 98
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 98
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %limit)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %limit)<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -31,7 +31,7 @@ define i32 @ult_trip_count_with_range(ptr %ptr0, ptr %ptr1) {
|
||||
; CHECK-LABEL: 'ult_trip_count_with_range'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ult_trip_count_with_range
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %limit)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 98
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 98
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %limit)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %limit)<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -31,7 +31,7 @@ define i32 @test1() nounwind readnone {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,51) S: [1,51) Exits: 50 LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test1
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 49
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 49
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 49
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 49
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 49
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -85,7 +85,7 @@ define i32 @test2() nounwind uwtable readonly {
|
||||
; CHECK-NEXT: --> %1 U: full-set S: full-set Exits: null LoopDispositions: { %for.body: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test2
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 4
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 4
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 4
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 4
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 4
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -432,7 +432,7 @@ define ptr @tautological_select_like_phi(i32 %tc) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,102) S: [1,102) Exits: 101 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @tautological_select_like_phi
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 100
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 100
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 100
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 100
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 100
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -17,7 +17,7 @@ define void @rewrite_zext(i32 %n) {
|
||||
; CHECK-NEXT: --> {8,+,8}<nuw><nsw><%loop> U: [8,25) S: [8,25) Exits: (8 + (8 * ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -61,7 +61,7 @@ define i32 @rewrite_zext_min_max(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_min_max
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -109,7 +109,7 @@ define i32 @rewrite_min_max_zext(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_min_max_zext
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -157,7 +157,7 @@ define i32 @rewrite_sext_min_max(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_sext_min_max
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -205,7 +205,7 @@ define i32 @rewrite_min_max_sext(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_min_max_sext
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -255,7 +255,7 @@ define i32 @rewrite_zext_with_info_from_icmp_ne(i32 %N) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,5) S: [4,5) Exits: 4 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_with_info_from_icmp_ne
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -305,7 +305,7 @@ define i32 @rewrite_zext_no_icmp_ne(i32 %N) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,4294967297) S: [4,4294967297) Exits: (4 + (4 * ((-4 + (4 * ((4 + (zext i32 (-1 + (zext i2 (trunc i32 %N to i2) to i32))<nsw> to i64))<nuw><nsw> /u 4))<nuw><nsw>)<nsw> /u 4))<nuw><nsw>)<nuw><nsw> LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_no_icmp_ne
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * ((4 + (zext i32 (-1 + (zext i2 (trunc i32 %N to i2) to i32))<nsw> to i64))<nuw><nsw> /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1073741823
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 1073741823
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * ((4 + (zext i32 (-1 + (zext i2 (trunc i32 %N to i2) to i32))<nsw> to i64))<nuw><nsw> /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * ((4 + (zext i32 (-1 + (zext i2 (trunc i32 %N to i2) to i32))<nsw> to i64))<nuw><nsw> /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -347,7 +347,7 @@ define void @rewrite_zext_and_base_1(i32 %n) {
|
||||
; CHECK-NEXT: --> {8,+,8}<nuw><nsw><%loop> U: [8,33) S: [8,33) Exits: (8 + (8 * ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_and_base_1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -392,7 +392,7 @@ define void @rewrite_zext_and_base_2(i32 %n) {
|
||||
; CHECK-NEXT: --> {8,+,8}<nuw><nsw><%loop> U: [8,33) S: [8,33) Exits: (8 + (8 * ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_and_base_2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-8 + (8 * ((zext i32 %n to i64) /u 8))<nuw><nsw>)<nsw> /u 8)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -435,7 +435,7 @@ define void @guard_pessimizes_analysis_step2(i1 %c, i32 %N) {
|
||||
; CHECK-NEXT: --> {(2 + %init)<nuw><nsw>,+,2}<nuw><nsw><%loop> U: [4,19) S: [4,19) Exits: (2 + (2 * ((14 + (-1 * %init)<nsw>)<nsw> /u 2))<nuw><nsw> + %init) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @guard_pessimizes_analysis_step2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((14 + (-1 * %init)<nsw>)<nsw> /u 2)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 6
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 6
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((14 + (-1 * %init)<nsw>)<nsw> /u 2)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((14 + (-1 * %init)<nsw>)<nsw> /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -483,7 +483,7 @@ define i32 @rewrite_sext_slt_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_sext_slt_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -529,7 +529,7 @@ define i32 @rewrite_zext_ult_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_ult_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -575,7 +575,7 @@ define i32 @rewrite_zext_ule_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_ule_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((4 umax (zext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -621,7 +621,7 @@ define i32 @rewrite_zext_sle_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_sle_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((zext i32 (4 smax %N) to i64) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -667,7 +667,7 @@ define i32 @rewrite_zext_uge_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_uge_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -713,7 +713,7 @@ define i32 @rewrite_sext_sge_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_sext_sge_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -759,7 +759,7 @@ define i32 @rewrite_zext_ugt_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_zext_ugt_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * ((16 umin (zext i32 %N to i64)) /u 4))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -805,7 +805,7 @@ define i32 @rewrite_sext_sgt_narrow_check(i32 %N, ptr %arr) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,17) S: [4,17) Exits: (4 + (4 * ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @rewrite_sext_sgt_narrow_check
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + (4 * (zext i3 (trunc i64 ((16 smin (sext i32 %N to i64)) /u 4) to i3) to i64))<nuw><nsw>)<nsw> /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -14,7 +14,7 @@ define void @test_guard_less_than_16(ptr nocapture %a, i64 %i) {
|
||||
; CHECK-NEXT: --> {(1 + %i),+,1}<nuw><nsw><%loop> U: full-set S: full-set Exits: 16 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_less_than_16
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 15
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -47,7 +47,7 @@ define void @test_guard_less_than_16_operands_swapped(ptr nocapture %a, i64 %i)
|
||||
; CHECK-NEXT: --> {(1 + %i),+,1}<nuw><nsw><%loop> U: full-set S: full-set Exits: 16 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_less_than_16_operands_swapped
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 15
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -80,7 +80,7 @@ define void @test_guard_less_than_16_branches_flipped(ptr nocapture %a, i64 %i)
|
||||
; CHECK-NEXT: --> {(1 + %i),+,1}<nuw><nsw><%loop> U: full-set S: full-set Exits: 16 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_less_than_16_branches_flipped
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (15 + (-1 * %i))
|
||||
; 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 (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -113,7 +113,7 @@ define void @test_guard_uge_16_branches_flipped(ptr nocapture %a, i64 %i) {
|
||||
; CHECK-NEXT: --> {(1 + %i),+,1}<nuw><nsw><%loop> U: full-set S: full-set Exits: 16 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_uge_16_branches_flipped
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 15
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (15 + (-1 * %i))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -146,7 +146,7 @@ define void @test_guard_eq_12(ptr nocapture %a, i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,14) S: [1,14) Exits: (1 + %N) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_eq_12
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is %N
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 12
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 12
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %N
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %N
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -179,7 +179,7 @@ define void @test_guard_ule_12(ptr nocapture %a, i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,14) S: [1,14) Exits: (1 + %N) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_ule_12
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is %N
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 12
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 12
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %N
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %N
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -212,7 +212,7 @@ define void @test_guard_ule_12_step2(ptr nocapture %a, i64 %N) {
|
||||
; CHECK-NEXT: --> {2,+,2}<nuw><nsw><%loop> U: [2,15) S: [2,15) Exits: (2 + (2 * (%N /u 2))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_ule_12_step2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%N /u 2)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 6
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 6
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%N /u 2)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%N /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -245,7 +245,7 @@ define void @test_multiple_const_guards_order1(ptr nocapture %a, i64 %i) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,11) S: [1,11) Exits: (1 + %i) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_multiple_const_guards_order1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 9
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 9
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %i
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -282,7 +282,7 @@ define void @test_multiple_const_guards_order2(ptr nocapture %a, i64 %i) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,11) S: [1,11) Exits: (1 + %i) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_multiple_const_guards_order2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 9
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 9
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %i
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -319,7 +319,7 @@ define void @test_multiple_var_guards_order1(ptr nocapture %a, i64 %i, i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,12) S: [1,12) Exits: (1 + %i) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_multiple_var_guards_order1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 10
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 10
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %i
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -356,7 +356,7 @@ define void @test_multiple_var_guards_order2(ptr nocapture %a, i64 %i, i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,12) S: [1,12) Exits: (1 + %i) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_multiple_var_guards_order2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 10
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 10
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %i
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %i
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -394,7 +394,7 @@ define void @test_multiple_var_guards_cycle(ptr nocapture %a, i64 %i, i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,-1) S: [1,-1) Exits: (1 + %N) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_multiple_var_guards_cycle
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is %N
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 -3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is %N
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is %N
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -431,7 +431,7 @@ define void @test_guard_ult_ne(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_ult_ne
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -468,7 +468,7 @@ define void @test_guard_ne_ult(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_ne_ult
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -507,7 +507,7 @@ define void @test_guard_if_and_enter(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_and_enter
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -544,7 +544,7 @@ define void @test_guard_if_and_skip(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_and_skip
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; 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 (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -583,7 +583,7 @@ define void @test_guard_if_and_and(ptr nocapture readonly %data, i64 %count, i1
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_and_and
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -623,7 +623,7 @@ define void @test_guard_if_and_or(ptr nocapture readonly %data, i64 %count, i1 %
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_and_or
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; 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 (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -661,7 +661,7 @@ define void @test_guard_if_or_skip(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_or_skip
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -698,7 +698,7 @@ define void @test_guard_if_or_enter(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_or_enter
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; 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 (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -737,7 +737,7 @@ define void @test_guard_if_or_or(ptr nocapture readonly %data, i64 %count, i1 %c
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_or_or
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -777,7 +777,7 @@ define void @test_guard_if_or_and(ptr nocapture readonly %data, i64 %count, i1 %
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_if_or_and
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; 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 (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -816,7 +816,7 @@ define void @test_guard_and_assume(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_and_assume
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -853,7 +853,7 @@ define void @test_guard_assume_and(ptr nocapture readonly %data, i64 %count) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,5) S: [1,5) Exits: %count LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_assume_and
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %count)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -892,7 +892,7 @@ define void @guard_pessimizes_analysis_step1(i1 %c, i32 %N) {
|
||||
; CHECK-NEXT: --> {(1 + %init)<nuw><nsw>,+,1}<nuw><nsw><%loop> U: [3,12) S: [3,12) Exits: 10 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @guard_pessimizes_analysis_step1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (9 + (-1 * %init)<nsw>)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 7
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 7
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (9 + (-1 * %init)<nsw>)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (9 + (-1 * %init)<nsw>)<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -933,7 +933,7 @@ define void @guard_pessimizes_analysis_step2(i1 %c, i32 %N) {
|
||||
; CHECK-NEXT: --> {(2 + %init)<nuw><nsw>,+,2}<nuw><nsw><%loop> U: [4,12) S: [4,12) Exits: (2 + (2 * ((8 + (-1 * %init)<nsw>)<nsw> /u 2))<nuw><nsw> + %init) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @guard_pessimizes_analysis_step2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((8 + (-1 * %init)<nsw>)<nsw> /u 2)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 3
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((8 + (-1 * %init)<nsw>)<nsw> /u 2)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((8 + (-1 * %init)<nsw>)<nsw> /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -975,7 +975,7 @@ define void @crash(ptr %ptr) {
|
||||
; CHECK-NEXT: --> {(1 + %ptr),+,1}<nuw><%while.body125> U: full-set S: full-set Exits: {(-1 + (-1 * (ptrtoint ptr %ptr to i64)) + %ptr),+,-1}<nw><%while.cond111> LoopDispositions: { %while.body125: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @crash
|
||||
; CHECK-NEXT: Loop %while.body125: backedge-taken count is {(-2 + (-1 * (ptrtoint ptr %ptr to i64))),+,-1}<nw><%while.cond111>
|
||||
; CHECK-NEXT: Loop %while.body125: constant max backedge-taken count is -2
|
||||
; CHECK-NEXT: Loop %while.body125: constant max backedge-taken count is i64 -2
|
||||
; CHECK-NEXT: Loop %while.body125: symbolic max backedge-taken count is {(-2 + (-1 * (ptrtoint ptr %ptr to i64))),+,-1}<nw><%while.cond111>
|
||||
; CHECK-NEXT: Loop %while.body125: Predicated backedge-taken count is {(-2 + (-1 * (ptrtoint ptr %ptr to i64))),+,-1}<nw><%while.cond111>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1029,7 +1029,7 @@ define void @test_guard_uge(i32 %blockSize) {
|
||||
; CHECK-NEXT: --> {(-1 + (%blockSize /u 4))<nsw>,+,-1}<nsw><%while.body> U: [-1073741823,1073741823) S: [-1073741823,1073741823) Exits: 0 LoopDispositions: { %while.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_uge
|
||||
; CHECK-NEXT: Loop %while.body: backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is 1073741822
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is i32 1073741822
|
||||
; CHECK-NEXT: Loop %while.body: symbolic max backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: Predicated backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1066,7 +1066,7 @@ define void @test_guard_ugt(i32 %blockSize) {
|
||||
; CHECK-NEXT: --> {(-1 + (%blockSize /u 4))<nsw>,+,-1}<nsw><%while.body> U: [-1073741823,1073741823) S: [-1073741823,1073741823) Exits: 0 LoopDispositions: { %while.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_ugt
|
||||
; CHECK-NEXT: Loop %while.body: backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is 1073741822
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is i32 1073741822
|
||||
; CHECK-NEXT: Loop %while.body: symbolic max backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: Predicated backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1103,7 +1103,7 @@ define void @test_guard_uge_and_ule(i32 %blockSize) {
|
||||
; CHECK-NEXT: --> {(-1 + (%blockSize /u 4))<nsw>,+,-1}<nsw><%while.body> U: [-256,1073741823) S: [-256,1073741823) Exits: 0 LoopDispositions: { %while.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_uge_and_ule
|
||||
; CHECK-NEXT: Loop %while.body: backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is 255
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is i32 255
|
||||
; CHECK-NEXT: Loop %while.body: symbolic max backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: Predicated backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1144,7 +1144,7 @@ define void @test_guard_ugt_and_ult(i32 %blockSize) {
|
||||
; CHECK-NEXT: --> {(-1 + (%blockSize /u 4))<nsw>,+,-1}<nsw><%while.body> U: [-256,1073741823) S: [-256,1073741823) Exits: 0 LoopDispositions: { %while.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_ugt_and_ult
|
||||
; CHECK-NEXT: Loop %while.body: backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is 255
|
||||
; CHECK-NEXT: Loop %while.body: constant max backedge-taken count is i32 255
|
||||
; CHECK-NEXT: Loop %while.body: symbolic max backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Loop %while.body: Predicated backedge-taken count is (-1 + (%blockSize /u 4))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1187,7 +1187,7 @@ define void @test_guard_slt_sgt_1(ptr nocapture %a, i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,12) S: [1,12) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_slt_sgt_1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 10
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 10
|
||||
; 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:
|
||||
@@ -1224,7 +1224,7 @@ define void @test_guard_slt_sgt_2(ptr nocapture %a, i64 %i) {
|
||||
; CHECK-NEXT: --> {(1 + %i),+,1}<nuw><nsw><%loop> U: full-set S: full-set Exits: 18 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_slt_sgt_2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (17 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 12
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 12
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (17 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (17 + (-1 * %i))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1261,7 +1261,7 @@ define void @test_guard_sle_sge_1(ptr nocapture %a, i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,13) S: [1,13) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_sle_sge_1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 11
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 11
|
||||
; 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:
|
||||
@@ -1298,7 +1298,7 @@ define void @test_guard_sle_sge_2(ptr nocapture %a, i64 %i) {
|
||||
; CHECK-NEXT: --> {(1 + %i),+,1}<nuw><nsw><%loop> U: full-set S: full-set Exits: 18 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_guard_sle_sge_2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (17 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 13
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 13
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (17 + (-1 * %i))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (17 + (-1 * %i))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1338,7 +1338,7 @@ define void @optimized_range_check_unsigned(ptr %pred, i32 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,8) S: [1,8) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @optimized_range_check_unsigned
|
||||
; 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 i32 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:
|
||||
@@ -1375,7 +1375,7 @@ define void @optimized_range_check_unsigned_icmp_ops_swapped(ptr %pred, i32 %N)
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,8) S: [1,8) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @optimized_range_check_unsigned_icmp_ops_swapped
|
||||
; 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 i32 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:
|
||||
@@ -1414,7 +1414,7 @@ define void @optimized_range_check_unsigned2(ptr %pred, i32 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,22) S: [1,22) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @optimized_range_check_unsigned2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 20
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 20
|
||||
; 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:
|
||||
@@ -1454,7 +1454,7 @@ define void @optimized_range_check_unsigned3(ptr %pred, i1 %c) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,4) S: [1,4) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @optimized_range_check_unsigned3
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %N)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %N)<nsw>
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %N)<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1493,7 +1493,7 @@ define void @not_optimized_range_check_unsigned1(ptr %pred, i32 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @not_optimized_range_check_unsigned1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -2
|
||||
; 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:
|
||||
@@ -1531,7 +1531,7 @@ define void @not_optimized_range_check_unsigned2(ptr %pred, i32 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,-2147483648) S: [1,-2147483648) Exits: %N LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @not_optimized_range_check_unsigned2
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 -2
|
||||
; 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:
|
||||
@@ -1563,7 +1563,7 @@ define i32 @sle_sgt_ult_umax_to_smax(i32 %num) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><nsw><%loop> U: [4,29) S: [4,29) Exits: (4 + (4 * ((-4 + %num) /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sle_sgt_ult_umax_to_smax
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + %num) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 6
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 6
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-4 + %num) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + %num) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1601,7 +1601,7 @@ define i32 @ult_sle_sgt_umax_to_smax(i32 %num) {
|
||||
; CHECK-NEXT: --> {4,+,4}<nuw><%loop> U: [4,-3) S: [-2147483648,2147483645) Exits: (4 + (4 * ((-4 + %num) /u 4))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ult_sle_sgt_umax_to_smax
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-4 + %num) /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 + %num) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-4 + %num) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1638,7 +1638,7 @@ define i32 @ptr_induction_ult_1(ptr %a, ptr %b) {
|
||||
; CHECK-NEXT: --> {(4 + %a),+,4}<nw><%loop> U: full-set S: full-set Exits: (4 + %a) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ptr_induction_ult_1
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -1699,7 +1699,7 @@ define void @gep_addrec_nw(ptr %a) {
|
||||
; CHECK-NEXT: --> {(4 + %a),+,4}<nw><%for.body> U: full-set S: full-set Exits: (1516 + %a) LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @gep_addrec_nw
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 378
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 378
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 378
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 378
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 378
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -8,7 +8,7 @@ define void @max_backedge_taken_count_by_wrapping1_nsw_nuw(i8 %N, ptr %ptr) {
|
||||
; CHECK-LABEL: 'max_backedge_taken_count_by_wrapping1_nsw_nuw'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @max_backedge_taken_count_by_wrapping1_nsw_nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%N /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 63
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 63
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%N /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%N /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -33,7 +33,7 @@ define void @max_backedge_taken_count_by_wrapping1_nuw(i8 %N, ptr %ptr) {
|
||||
; CHECK-LABEL: 'max_backedge_taken_count_by_wrapping1_nuw'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @max_backedge_taken_count_by_wrapping1_nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (%N /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 63
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 63
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (%N /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (%N /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -58,7 +58,7 @@ define void @max_backedge_taken_count_by_wrapping2_nsw_nuw(i8 %N, ptr %ptr) {
|
||||
; CHECK-LABEL: 'max_backedge_taken_count_by_wrapping2_nsw_nuw'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @max_backedge_taken_count_by_wrapping2_nsw_nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-64 + %N) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 63
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 63
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-64 + %N) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-64 + %N) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -83,7 +83,7 @@ define void @max_backedge_taken_count_by_wrapping2_nuw(i8 %N, ptr %ptr) {
|
||||
; CHECK-LABEL: 'max_backedge_taken_count_by_wrapping2_nuw'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @max_backedge_taken_count_by_wrapping2_nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-64 + %N) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 63
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 63
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-64 + %N) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-64 + %N) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -21,7 +21,7 @@ define void @pluto(i32 %arg) {
|
||||
; CHECK-NEXT: --> {(2 + %tmp)<nsw>,+,(2 + %tmp)<nsw>}<nuw><nsw><%bb2> U: [1,5) S: [1,5) Exits: (2 + ((2 + %tmp)<nsw> * (1 /u (2 + %tmp)<nsw>))<nuw> + %tmp) LoopDispositions: { %bb2: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @pluto
|
||||
; CHECK-NEXT: Loop %bb2: backedge-taken count is (1 /u (2 + %tmp)<nsw>)
|
||||
; CHECK-NEXT: Loop %bb2: constant max backedge-taken count is 1
|
||||
; CHECK-NEXT: Loop %bb2: constant max backedge-taken count is i32 1
|
||||
; CHECK-NEXT: Loop %bb2: symbolic max backedge-taken count is (1 /u (2 + %tmp)<nsw>)
|
||||
; CHECK-NEXT: Loop %bb2: Predicated backedge-taken count is (1 /u (2 + %tmp)<nsw>)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -88,7 +88,7 @@ define void @smax(i32 %tmp3) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%bb4> U: [1,0) S: [1,0) Exits: <<Unknown>> LoopDispositions: { %bb4: Computable, %bb53: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @smax
|
||||
; CHECK-NEXT: Loop %bb53: backedge-taken count is (-1 + (zext i32 (0 smax %tmp49) to i64) + (-1 * undef))
|
||||
; CHECK-NEXT: Loop %bb53: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %bb53: constant max backedge-taken count is i64 -1
|
||||
; CHECK-NEXT: Loop %bb53: symbolic max backedge-taken count is (-1 + (zext i32 (0 smax %tmp49) to i64) + (-1 * undef))
|
||||
; CHECK-NEXT: Loop %bb53: Predicated backedge-taken count is (-1 + (zext i32 (0 smax %tmp49) to i64) + (-1 * undef))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -250,7 +250,7 @@ define void @umax(i32 %tmp3) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%bb4> U: [1,0) S: [1,0) Exits: <<Unknown>> LoopDispositions: { %bb4: Computable, %bb53: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @umax
|
||||
; CHECK-NEXT: Loop %bb53: backedge-taken count is (-1 + (zext i32 %tmp49 to i64) + (-1 * undef))
|
||||
; CHECK-NEXT: Loop %bb53: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %bb53: constant max backedge-taken count is i64 -1
|
||||
; CHECK-NEXT: Loop %bb53: symbolic max backedge-taken count is (-1 + (zext i32 %tmp49 to i64) + (-1 * undef))
|
||||
; CHECK-NEXT: Loop %bb53: Predicated backedge-taken count is (-1 + (zext i32 %tmp49 to i64) + (-1 * undef))
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -10,7 +10,7 @@ define void @foo(ptr addrspace(1) nocapture %d, i32 %n) nounwind {
|
||||
; CHECK-LABEL: 'foo'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @foo
|
||||
; CHECK-NEXT: Loop %bb: backedge-taken count is (-1 + %n)
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 2147483646
|
||||
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is (-1 + %n)
|
||||
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is (-1 + %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -50,7 +50,7 @@ define void @test(ptr addrspace(1) %a, i32 %n) nounwind {
|
||||
; CHECK-LABEL: 'test'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (zext i32 %n to i64))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 2147483646
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + (zext i32 %n to i64))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (zext i32 %n to i64))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -8,7 +8,7 @@ define void @foo(ptr nocapture %d, i32 %n) nounwind {
|
||||
; CHECK-LABEL: 'foo'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @foo
|
||||
; CHECK-NEXT: Loop %bb: backedge-taken count is (-1 + %n)
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 2147483646
|
||||
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is (-1 + %n)
|
||||
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is (-1 + %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -57,7 +57,7 @@ define i32 @main() nounwind {
|
||||
; CHECK-NEXT: Loop %for.cond: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for for.cond: 5
|
||||
; CHECK-NEXT: exit count for for.body: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %for.cond: constant max backedge-taken count is 5
|
||||
; CHECK-NEXT: Loop %for.cond: constant max backedge-taken count is i32 5
|
||||
; CHECK-NEXT: Loop %for.cond: symbolic max backedge-taken count is 5
|
||||
; CHECK-NEXT: symbolic max exit count for for.cond: 5
|
||||
; CHECK-NEXT: symbolic max exit count for for.body: ***COULDNOTCOMPUTE***
|
||||
@@ -93,7 +93,7 @@ define void @test(ptr %a, i32 %n) nounwind {
|
||||
; CHECK-LABEL: 'test'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (zext i32 %n to i64))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 2147483646
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + (zext i32 %n to i64))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (zext i32 %n to i64))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -132,7 +132,7 @@ define i32 @pr19799() {
|
||||
; CHECK-NEXT: Loop %for.body.i: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for for.body.i: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for for.cond.i: 1
|
||||
; 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: symbolic max exit count for for.body.i: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for for.cond.i: 1
|
||||
@@ -166,7 +166,7 @@ define i32 @pr18886() {
|
||||
; CHECK-NEXT: Loop %for.body: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for for.body: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for for.cond: 3
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 3
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 3
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 3
|
||||
; CHECK-NEXT: symbolic max exit count for for.body: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for for.cond: 3
|
||||
@@ -239,7 +239,7 @@ define i32 @two_mustexit() {
|
||||
; CHECK-NEXT: Loop %for.body.i: <multiple exits> backedge-taken count is 1
|
||||
; CHECK-NEXT: exit count for for.body.i: 1
|
||||
; CHECK-NEXT: exit count for for.cond.i: 2
|
||||
; 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: symbolic max exit count for for.body.i: 1
|
||||
; CHECK-NEXT: symbolic max exit count for for.cond.i: 2
|
||||
@@ -270,7 +270,7 @@ define i32 @ne_max_trip_count_1(i32 %n) {
|
||||
; CHECK-LABEL: 'ne_max_trip_count_1'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ne_max_trip_count_1
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (zext i3 (trunc i32 %n to i3) to i32)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 7
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 7
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (zext i3 (trunc i32 %n to i3) to i32)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (zext i3 (trunc i32 %n to i3) to i32)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -294,7 +294,7 @@ define i32 @ne_max_trip_count_2(i32 %n) {
|
||||
; CHECK-LABEL: 'ne_max_trip_count_2'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ne_max_trip_count_2
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (zext i3 (trunc i32 %n to i3) to i32))<nsw>
|
||||
; 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 + (zext i3 (trunc i32 %n to i3) to i32))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (zext i3 (trunc i32 %n to i3) to i32))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -318,7 +318,7 @@ define i32 @ne_max_trip_count_3(i32 %n) {
|
||||
; CHECK-LABEL: 'ne_max_trip_count_3'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ne_max_trip_count_3
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (zext i3 (trunc i32 %n to i3) to i32))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 6
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 6
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + (zext i3 (trunc i32 %n to i3) to i32))<nsw>
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (zext i3 (trunc i32 %n to i3) to i32))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -349,7 +349,7 @@ define i32 @ne_max_trip_count_4(i32 %n) {
|
||||
; CHECK-LABEL: 'ne_max_trip_count_4'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ne_max_trip_count_4
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %n)
|
||||
; 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 + %n)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %n)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -381,7 +381,7 @@ define void @changing_end_bound(ptr %n_addr, ptr %addr) {
|
||||
; CHECK-LABEL: 'changing_end_bound'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @changing_end_bound
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
@@ -410,7 +410,7 @@ define void @changing_end_bound2(i32 %start, ptr %n_addr, ptr %addr) {
|
||||
; CHECK-LABEL: 'changing_end_bound2'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @changing_end_bound2
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; 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: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
@@ -437,7 +437,7 @@ define void @changing_end_bound3(i32 %start, ptr %n_addr, ptr %addr) {
|
||||
; CHECK-LABEL: 'changing_end_bound3'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @changing_end_bound3
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; 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 1073741823
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
@@ -573,7 +573,7 @@ define void @max_overflow_se(i8 %n) mustprogress {
|
||||
; CHECK-LABEL: 'max_overflow_se'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @max_overflow_se
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 0
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -600,7 +600,7 @@ define void @max_overflow_me(i8 %n) mustprogress {
|
||||
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop: 1
|
||||
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; 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
|
||||
; CHECK-NEXT: symbolic max exit count for loop: 1
|
||||
; CHECK-NEXT: symbolic max exit count for latch: ***COULDNOTCOMPUTE***
|
||||
@@ -630,7 +630,7 @@ define void @bool_stride(i1 %s, i1 %n) mustprogress {
|
||||
; CHECK-LABEL: 'bool_stride'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @bool_stride
|
||||
; 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:
|
||||
@@ -656,7 +656,7 @@ define void @ne_zero_max_btc(i32 %a) {
|
||||
; CHECK-LABEL: 'ne_zero_max_btc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ne_zero_max_btc
|
||||
; 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 i64 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:
|
||||
|
||||
@@ -47,7 +47,7 @@ define void @f(ptr %A, i32 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%bb1> U: [1,-2147483647) S: [1,-2147483647) Exits: (1 + (0 smax %N))<nuw> LoopDispositions: { %bb1: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f
|
||||
; CHECK-NEXT: Loop %bb1: backedge-taken count is (0 smax %N)
|
||||
; CHECK-NEXT: Loop %bb1: constant max backedge-taken count is 2147483647
|
||||
; CHECK-NEXT: Loop %bb1: constant max backedge-taken count is i32 2147483647
|
||||
; CHECK-NEXT: Loop %bb1: symbolic max backedge-taken count is (0 smax %N)
|
||||
; CHECK-NEXT: Loop %bb1: Predicated backedge-taken count is (0 smax %N)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -11,7 +11,7 @@ define void @test(i32 %N) mustprogress {
|
||||
; CHECK-LABEL: 'test'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((-2 + %N) /u 2)
|
||||
; 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 ((-2 + %N) /u 2)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-2 + %N) /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -34,7 +34,7 @@ define void @test_preinc(i32 %N) mustprogress {
|
||||
; CHECK-LABEL: 'test_preinc'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_preinc
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (%N /u 2)
|
||||
; 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 /u 2)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (%N /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -127,7 +127,7 @@ define void @test_1024(i32 %N) mustprogress {
|
||||
; CHECK-LABEL: 'test_1024'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_1024
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((-1024 + %N) /u 1024)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 4194303
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 4194303
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is ((-1024 + %N) /u 1024)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-1024 + %N) /u 1024)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -150,7 +150,7 @@ define void @test_uneven_divide(i32 %N) mustprogress {
|
||||
; CHECK-LABEL: 'test_uneven_divide'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_uneven_divide
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (-1431655765 * %N))
|
||||
; 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 + (-1431655765 * %N))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (-1431655765 * %N))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -222,7 +222,7 @@ define void @test_other_exit(i32 %N) mustprogress {
|
||||
; CHECK-NEXT: Loop %for.body: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for for.body: 9
|
||||
; CHECK-NEXT: exit count for for.latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 9
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 9
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 9
|
||||
; CHECK-NEXT: symbolic max exit count for for.body: 9
|
||||
; CHECK-NEXT: symbolic max exit count for for.latch: ***COULDNOTCOMPUTE***
|
||||
|
||||
@@ -26,7 +26,7 @@ define i32 @test_01(i32 %start, ptr %p, ptr %q) {
|
||||
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop: (zext i32 %start to i64)
|
||||
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i32 %start to i64)
|
||||
; CHECK-NEXT: symbolic max exit count for loop: (zext i32 %start to i64)
|
||||
; CHECK-NEXT: symbolic max exit count for backedge: ***COULDNOTCOMPUTE***
|
||||
@@ -74,7 +74,7 @@ define i32 @test_02(i32 %start, ptr %p, ptr %q) {
|
||||
; CHECK-NEXT: --> {(-1 + (2147483648 * (zext i32 %start to i64))<nuw><nsw>)<nsw>,+,-1}<nw><%loop> U: full-set S: full-set Exits: -9223372036854775807 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_02
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (9223372036854775806 + (2147483648 * (zext i32 %start to i64))<nuw><nsw>)<nuw>
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is -2147483650
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 -2147483650
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (9223372036854775806 + (2147483648 * (zext i32 %start to i64))<nuw><nsw>)<nuw>
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (9223372036854775806 + (2147483648 * (zext i32 %start to i64))<nuw><nsw>)<nuw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -135,7 +135,7 @@ define void @pointer_iv_nowrap_guard(ptr %startptr, ptr %endptr) local_unnamed_a
|
||||
; CHECK-NEXT: --> {(8004 + %startptr),+,4}<nuw><%loop> U: full-set S: full-set Exits: (8004 + (4 * ((-8001 + (-1 * (ptrtoint ptr %startptr to i64)) + ((8004 + (ptrtoint ptr %startptr to i64)) umax (ptrtoint ptr %endptr to i64))) /u 4))<nuw> + %startptr) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @pointer_iv_nowrap_guard
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-8001 + (-1 * (ptrtoint ptr %startptr to i64)) + ((8004 + (ptrtoint ptr %startptr to i64)) umax (ptrtoint ptr %endptr to i64))) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4611686018427387903
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4611686018427387903
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-8001 + (-1 * (ptrtoint ptr %startptr to i64)) + ((8004 + (ptrtoint ptr %startptr to i64)) umax (ptrtoint ptr %endptr to i64))) /u 4)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-8001 + (-1 * (ptrtoint ptr %startptr to i64)) + ((8004 + (ptrtoint ptr %startptr to i64)) umax (ptrtoint ptr %endptr to i64))) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -45,7 +45,7 @@ define void @foo(i32 %no, ptr nocapture %d, ptr nocapture %q) nounwind {
|
||||
; CHECK-NEXT: --> {2,+,2}<nuw><nsw><%bb> U: [2,2147483647) S: [2,2147483647) Exits: (2 + (2 * ((-1 + (2 * (%no /u 2))<nuw>) /u 2))<nuw>) LoopDispositions: { %bb: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @foo
|
||||
; CHECK-NEXT: Loop %bb: backedge-taken count is ((-1 + (2 * (%no /u 2))<nuw>) /u 2)
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is 1073741822
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 1073741822
|
||||
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is ((-1 + (2 * (%no /u 2))<nuw>) /u 2)
|
||||
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is ((-1 + (2 * (%no /u 2))<nuw>) /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -42,7 +42,7 @@ define void @foo(i32 %no, ptr nocapture %d, ptr nocapture %q) nounwind {
|
||||
; CHECK-NEXT: --> {2,+,2}<nuw><nsw><%bb> U: [2,2147483647) S: [2,2147483647) Exits: (2 + (2 * ((-1 + (2 * (%no /u 2))<nuw>) /u 2))<nuw>) LoopDispositions: { %bb: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @foo
|
||||
; CHECK-NEXT: Loop %bb: backedge-taken count is ((-1 + (2 * (%no /u 2))<nuw>) /u 2)
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is 1073741822
|
||||
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 1073741822
|
||||
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is ((-1 + (2 * (%no /u 2))<nuw>) /u 2)
|
||||
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is ((-1 + (2 * (%no /u 2))<nuw>) /u 2)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -77,7 +77,7 @@ define void @test2(ptr %begin, ptr %end) ssp {
|
||||
; CHECK-NEXT: --> {(4 + %begin),+,4}<nuw><%for.body.i.i> U: full-set S: full-set Exits: (4 + (4 * ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4))<nuw> + %begin) LoopDispositions: { %for.body.i.i: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test2
|
||||
; CHECK-NEXT: Loop %for.body.i.i: backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4)
|
||||
; CHECK-NEXT: Loop %for.body.i.i: constant max backedge-taken count is 4611686018427387903
|
||||
; CHECK-NEXT: Loop %for.body.i.i: constant max backedge-taken count is i64 4611686018427387903
|
||||
; CHECK-NEXT: Loop %for.body.i.i: symbolic max backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4)
|
||||
; CHECK-NEXT: Loop %for.body.i.i: Predicated backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -118,7 +118,7 @@ define void @test3(ptr %begin, ptr %end) nounwind ssp {
|
||||
; CHECK-NEXT: --> {%begin,+,4}<nuw><%for.body.i.i> U: full-set S: full-set Exits: ((4 * ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4))<nuw> + %begin) LoopDispositions: { %for.body.i.i: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test3
|
||||
; CHECK-NEXT: Loop %for.body.i.i: backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4)
|
||||
; CHECK-NEXT: Loop %for.body.i.i: constant max backedge-taken count is 4611686018427387903
|
||||
; CHECK-NEXT: Loop %for.body.i.i: constant max backedge-taken count is i64 4611686018427387903
|
||||
; CHECK-NEXT: Loop %for.body.i.i: symbolic max backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4)
|
||||
; CHECK-NEXT: Loop %for.body.i.i: Predicated backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %begin to i64)) + (ptrtoint ptr %end to i64)) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -181,7 +181,7 @@ define i32 @PR12375(ptr readnone %arg) {
|
||||
; CHECK-NEXT: --> {(4 + %arg)<nuw>,+,4}<nuw><%bb1> U: [4,0) S: [4,0) Exits: (8 + %arg)<nuw> LoopDispositions: { %bb1: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @PR12375
|
||||
; CHECK-NEXT: Loop %bb1: backedge-taken count is 1
|
||||
; CHECK-NEXT: Loop %bb1: constant max backedge-taken count is 1
|
||||
; CHECK-NEXT: Loop %bb1: constant max backedge-taken count is i64 1
|
||||
; CHECK-NEXT: Loop %bb1: symbolic max backedge-taken count is 1
|
||||
; CHECK-NEXT: Loop %bb1: Predicated backedge-taken count is 1
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -212,7 +212,7 @@ define void @PR12376(ptr nocapture %arg, ptr nocapture %arg1) {
|
||||
; CHECK-NEXT: --> {(4 + %arg)<nuw>,+,4}<nuw><%bb2> U: [4,0) S: [4,0) Exits: (4 + (4 * ((-1 + (-1 * (ptrtoint ptr %arg to i64)) + ((4 + (ptrtoint ptr %arg to i64))<nuw> umax (ptrtoint ptr %arg1 to i64))) /u 4))<nuw> + %arg) LoopDispositions: { %bb2: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @PR12376
|
||||
; CHECK-NEXT: Loop %bb2: backedge-taken count is ((-1 + (-1 * (ptrtoint ptr %arg to i64)) + ((4 + (ptrtoint ptr %arg to i64))<nuw> umax (ptrtoint ptr %arg1 to i64))) /u 4)
|
||||
; CHECK-NEXT: Loop %bb2: constant max backedge-taken count is 4611686018427387902
|
||||
; CHECK-NEXT: Loop %bb2: constant max backedge-taken count is i64 4611686018427387902
|
||||
; CHECK-NEXT: Loop %bb2: symbolic max backedge-taken count is ((-1 + (-1 * (ptrtoint ptr %arg to i64)) + ((4 + (ptrtoint ptr %arg to i64))<nuw> umax (ptrtoint ptr %arg1 to i64))) /u 4)
|
||||
; CHECK-NEXT: Loop %bb2: Predicated backedge-taken count is ((-1 + (-1 * (ptrtoint ptr %arg to i64)) + ((4 + (ptrtoint ptr %arg to i64))<nuw> umax (ptrtoint ptr %arg1 to i64))) /u 4)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -248,7 +248,7 @@ define void @nswnowrap(i32 %v, ptr %buf) {
|
||||
; CHECK-NEXT: --> %buf.val U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %for.body: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @nswnowrap
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is ((-1 * %v) + ((1 + %v)<nsw> smax %v))
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 1, actual taken count either this or zero.
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 1, actual taken count either this or zero.
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is ((-1 * %v) + ((1 + %v)<nsw> smax %v)), actual taken count either this or zero.
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((-1 * %v) + ((1 + %v)<nsw> smax %v))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -291,7 +291,7 @@ define void @test4(i32 %arg) {
|
||||
; CHECK-NEXT: --> {(1 + %arg)<nsw>,+,1}<nsw><%for.body> U: [-2147483647,-2147483648) S: [-2147483647,-2147483648) Exits: (10 smax (1 + %arg)<nsw>) LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test4
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (-1 * %arg) + (10 smax (1 + %arg)<nsw>))
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -2147483639
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -2147483639
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + (-1 * %arg) + (10 smax (1 + %arg)<nsw>))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (-1 * %arg) + (10 smax (1 + %arg)<nsw>))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -325,7 +325,7 @@ define void @bad_postinc_nsw_a(i32 %n) {
|
||||
; CHECK-NEXT: --> {7,+,7}<nuw><%loop> U: [7,-3) S: [7,0) Exits: (7 + (7 * ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n)))) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @bad_postinc_nsw_a
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 613566756
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 613566756
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -386,7 +386,7 @@ define void @pr28012(i32 %n) {
|
||||
; CHECK-NEXT: --> {7,+,7}<nuw><%loop> U: [7,-3) S: [7,-3) Exits: (7 + (7 * ((-1 + (7 umax %n)) /u 7))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @pr28012
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 + (7 umax %n)) /u 7)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 613566755
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 613566755
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((-1 + (7 umax %n)) /u 7)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((-1 + (7 umax %n)) /u 7)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -451,7 +451,7 @@ define void @pr66066() {
|
||||
; CHECK-NEXT: --> {-128,+,-128}<%loop> U: [0,-127) S: [-128,1) Exits: 0 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @pr66066
|
||||
; 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 i8 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:
|
||||
|
||||
@@ -20,7 +20,7 @@ define i32 @test_01(i32 %a, i32 %b) {
|
||||
; CHECK-NEXT: Loop %inner: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for inner: %b
|
||||
; CHECK-NEXT: exit count for inner.backedge: ***COULDNOTCOMPUTE***
|
||||
; 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 %b
|
||||
; CHECK-NEXT: symbolic max exit count for inner: %b
|
||||
; CHECK-NEXT: symbolic max exit count for inner.backedge: ***COULDNOTCOMPUTE***
|
||||
@@ -84,7 +84,7 @@ define i32 @test_02(i32 %a, i32 %b) {
|
||||
; CHECK-NEXT: Loop %inner: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for inner: ((-1 * %outer.iv) + (%b smax %outer.iv))
|
||||
; CHECK-NEXT: exit count for inner.backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %inner: symbolic max backedge-taken count is ((-1 * %outer.iv) + (%b smax %outer.iv))
|
||||
; CHECK-NEXT: symbolic max exit count for inner: ((-1 * %outer.iv) + (%b smax %outer.iv))
|
||||
; CHECK-NEXT: symbolic max exit count for inner.backedge: ***COULDNOTCOMPUTE***
|
||||
|
||||
@@ -12,7 +12,7 @@ define void @uadd_exhaustive() {
|
||||
; CHECK-LABEL: 'uadd_exhaustive'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @uadd_exhaustive
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 35
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 35
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 35
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 35
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 35
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -39,7 +39,7 @@ define void @sadd_exhaustive() {
|
||||
; CHECK-LABEL: 'sadd_exhaustive'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sadd_exhaustive
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 67
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 67
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 67
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 67
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 67
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -66,7 +66,7 @@ define void @usub_exhaustive() {
|
||||
; CHECK-LABEL: 'usub_exhaustive'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @usub_exhaustive
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 50
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 50
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 50
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 50
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 50
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -93,7 +93,7 @@ define void @ssub_exhaustive() {
|
||||
; CHECK-LABEL: 'ssub_exhaustive'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ssub_exhaustive
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 68
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 68
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i16 68
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 68
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 68
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -120,7 +120,7 @@ define void @smul_exhaustive() {
|
||||
; CHECK-LABEL: 'smul_exhaustive'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @smul_exhaustive
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 14
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 14
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 14
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 14
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 14
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -147,7 +147,7 @@ define void @umul_exhaustive() {
|
||||
; CHECK-LABEL: 'umul_exhaustive'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @umul_exhaustive
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 15
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 15
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 15
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -174,7 +174,7 @@ define void @uadd_symbolic_start(i16 %start) {
|
||||
; CHECK-LABEL: 'uadd_symbolic_start'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @uadd_symbolic_start
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (-1 * %start))
|
||||
; 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 (-1 + (-1 * %start))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + (-1 * %start))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -201,7 +201,7 @@ define void @sadd_symbolic_start(i16 %start) {
|
||||
; CHECK-LABEL: 'sadd_symbolic_start'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sadd_symbolic_start
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (32767 + (-1 * %start))
|
||||
; 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 (32767 + (-1 * %start))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (32767 + (-1 * %start))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -279,7 +279,7 @@ define void @usub_symbolic_start(i16 %start) {
|
||||
; CHECK-LABEL: 'usub_symbolic_start'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @usub_symbolic_start
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is %start
|
||||
; 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 %start
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is %start
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -306,7 +306,7 @@ define void @ssub_symbolic_start(i16 %start) {
|
||||
; CHECK-LABEL: 'ssub_symbolic_start'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ssub_symbolic_start
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-32768 + %start)
|
||||
; 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 (-32768 + %start)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-32768 + %start)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -385,7 +385,7 @@ define void @sadd_symbolic_non_latch(i16 %start) {
|
||||
; CHECK-NEXT: Loop %for.body: <multiple exits> backedge-taken count is ((230 + (-1 * %start)) umin (32767 + (-1 * %start)))
|
||||
; CHECK-NEXT: exit count for for.body: (32767 + (-1 * %start))
|
||||
; CHECK-NEXT: exit count for for.latch: (230 + (-1 * %start))
|
||||
; 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 ((230 + (-1 * %start)) umin (32767 + (-1 * %start)))
|
||||
; CHECK-NEXT: symbolic max exit count for for.body: (32767 + (-1 * %start))
|
||||
; CHECK-NEXT: symbolic max exit count for for.latch: (230 + (-1 * %start))
|
||||
|
||||
@@ -31,7 +31,7 @@ cont: ; preds = %for.body
|
||||
%tmp2 = extractvalue { i32, i1 } %tmp0, 0
|
||||
%cmp = icmp slt i32 %tmp2, 16
|
||||
br i1 %cmp, label %for.body, label %for.cond.cleanup
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is 15
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is i32 15
|
||||
}
|
||||
|
||||
define void @f_sadd_1(ptr %a) {
|
||||
@@ -66,7 +66,7 @@ cont: ; preds = %for.body
|
||||
%tmp2 = extractvalue { i32, i1 } %tmp0, 0
|
||||
%cmp = icmp slt i32 %tmp2, 16
|
||||
br i1 %cmp, label %for.body, label %for.cond.cleanup
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is 15
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is i32 15
|
||||
}
|
||||
|
||||
define void @f_sadd_2(ptr %a, ptr %c) {
|
||||
@@ -216,7 +216,7 @@ cont: ; preds = %for.body
|
||||
%tmp2 = extractvalue { i32, i1 } %tmp0, 0
|
||||
%cmp = icmp slt i32 %tmp2, 16
|
||||
br i1 %cmp, label %for.body, label %for.cond.cleanup
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is 15
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is i32 15
|
||||
}
|
||||
|
||||
define void @f_ssub(ptr nocapture %a) {
|
||||
@@ -247,7 +247,7 @@ cont: ; preds = %for.body
|
||||
%tmp2 = extractvalue { i32, i1 } %tmp0, 0
|
||||
%cmp = icmp sgt i32 %tmp2, -1
|
||||
br i1 %cmp, label %for.body, label %for.cond.cleanup
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is 15
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is i32 15
|
||||
}
|
||||
|
||||
define void @f_usub(ptr nocapture %a) {
|
||||
@@ -278,7 +278,7 @@ cont: ; preds = %for.body
|
||||
%tmp2 = extractvalue { i32, i1 } %tmp0, 0
|
||||
%cmp = icmp sgt i32 %tmp2, -1
|
||||
br i1 %cmp, label %for.body, label %for.cond.cleanup
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is 15
|
||||
; CHECK: Loop %for.body: constant max backedge-taken count is i32 15
|
||||
}
|
||||
|
||||
define i32 @f_smul(i32 %val_a, i32 %val_b) {
|
||||
|
||||
@@ -9,13 +9,13 @@ define void @hoge1() {
|
||||
; CHECK-LABEL: 'hoge1'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @hoge1
|
||||
; CHECK-NEXT: Loop %bb13: backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)
|
||||
; CHECK-NEXT: Loop %bb13: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %bb13: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %bb13: symbolic max backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)
|
||||
; CHECK-NEXT: Loop %bb13: Predicated backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)
|
||||
; CHECK-NEXT: Predicates:
|
||||
; CHECK-NEXT: Loop %bb13: Trip multiple is 1
|
||||
; CHECK-NEXT: Loop %bb4: backedge-taken count is 20
|
||||
; CHECK-NEXT: Loop %bb4: constant max backedge-taken count is 20
|
||||
; CHECK-NEXT: Loop %bb4: constant max backedge-taken count is i64 20
|
||||
; CHECK-NEXT: Loop %bb4: symbolic max backedge-taken count is 20
|
||||
; CHECK-NEXT: Loop %bb4: Predicated backedge-taken count is 20
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -63,7 +63,7 @@ define void @hoge2() {
|
||||
; CHECK-LABEL: 'hoge2'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @hoge2
|
||||
; CHECK-NEXT: Loop %bb13: backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)
|
||||
; CHECK-NEXT: Loop %bb13: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %bb13: constant max backedge-taken count is i32 -1
|
||||
; CHECK-NEXT: Loop %bb13: symbolic max backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)
|
||||
; CHECK-NEXT: Loop %bb13: Predicated backedge-taken count is (-2 + (2 * undef) + %tmp7 + %tmp6)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -5,7 +5,7 @@ define i32 @pr34538() local_unnamed_addr #0 {
|
||||
; CHECK-LABEL: 'pr34538'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @pr34538
|
||||
; CHECK-NEXT: Loop %do.body: backedge-taken count is 10000
|
||||
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 10000
|
||||
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 10000
|
||||
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is 10000
|
||||
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is 10000
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -30,7 +30,7 @@ define i32 @foo() {
|
||||
; CHECK-LABEL: 'foo'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @foo
|
||||
; CHECK-NEXT: Loop %do.body: backedge-taken count is 5000
|
||||
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is 5000
|
||||
; CHECK-NEXT: Loop %do.body: constant max backedge-taken count is i32 5000
|
||||
; CHECK-NEXT: Loop %do.body: symbolic max backedge-taken count is 5000
|
||||
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is 5000
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -24,7 +24,7 @@ define void @test_and(i1 %boolcond) {
|
||||
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop: 2
|
||||
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 2
|
||||
; CHECK-NEXT: symbolic max exit count for loop: 2
|
||||
; CHECK-NEXT: symbolic max exit count for backedge: ***COULDNOTCOMPUTE***
|
||||
@@ -74,7 +74,7 @@ define void @test_or(i1 %boolcond) {
|
||||
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for loop: 2
|
||||
; CHECK-NEXT: exit count for backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 2
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 2
|
||||
; CHECK-NEXT: symbolic max exit count for loop: 2
|
||||
; CHECK-NEXT: symbolic max exit count for backedge: ***COULDNOTCOMPUTE***
|
||||
|
||||
@@ -349,7 +349,7 @@ define i64 @sext_like_noop(i32 %n) {
|
||||
; PTR64_IDX64-NEXT: --> {2,+,1}<nuw><%for.body> U: [2,0) S: [2,0) Exits: (trunc i64 (ptrtoint ptr @sext_like_noop to i64) to i32) LoopDispositions: { %for.body: Computable }
|
||||
; PTR64_IDX64-NEXT: Determining loop execution counts for: @sext_like_noop
|
||||
; PTR64_IDX64-NEXT: Loop %for.body: backedge-taken count is (-2 + (trunc i64 (ptrtoint ptr @sext_like_noop to i64) to i32))
|
||||
; PTR64_IDX64-NEXT: Loop %for.body: constant max backedge-taken count is -1
|
||||
; PTR64_IDX64-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
|
||||
; PTR64_IDX64-NEXT: Loop %for.body: symbolic max backedge-taken count is (-2 + (trunc i64 (ptrtoint ptr @sext_like_noop to i64) to i32))
|
||||
; PTR64_IDX64-NEXT: Loop %for.body: Predicated backedge-taken count is (-2 + (trunc i64 (ptrtoint ptr @sext_like_noop to i64) to i32))
|
||||
; PTR64_IDX64-NEXT: Predicates:
|
||||
@@ -367,7 +367,7 @@ define i64 @sext_like_noop(i32 %n) {
|
||||
; PTR64_IDX32-NEXT: --> {2,+,1}<nuw><%for.body> U: [2,0) S: [2,0) Exits: ptrtoint (ptr @sext_like_noop to i32) LoopDispositions: { %for.body: Computable }
|
||||
; PTR64_IDX32-NEXT: Determining loop execution counts for: @sext_like_noop
|
||||
; PTR64_IDX32-NEXT: Loop %for.body: backedge-taken count is (-2 + ptrtoint (ptr @sext_like_noop to i32))
|
||||
; PTR64_IDX32-NEXT: Loop %for.body: constant max backedge-taken count is -1
|
||||
; PTR64_IDX32-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
|
||||
; PTR64_IDX32-NEXT: Loop %for.body: symbolic max backedge-taken count is (-2 + ptrtoint (ptr @sext_like_noop to i32))
|
||||
; PTR64_IDX32-NEXT: Loop %for.body: Predicated backedge-taken count is (-2 + ptrtoint (ptr @sext_like_noop to i32))
|
||||
; PTR64_IDX32-NEXT: Predicates:
|
||||
@@ -385,7 +385,7 @@ define i64 @sext_like_noop(i32 %n) {
|
||||
; PTR16_IDX16-NEXT: --> {2,+,1}<nuw><%for.body> U: [2,0) S: [2,0) Exits: (zext i16 (ptrtoint ptr @sext_like_noop to i16) to i32) LoopDispositions: { %for.body: Computable }
|
||||
; PTR16_IDX16-NEXT: Determining loop execution counts for: @sext_like_noop
|
||||
; PTR16_IDX16-NEXT: Loop %for.body: backedge-taken count is (-2 + (zext i16 (ptrtoint ptr @sext_like_noop to i16) to i32))<nsw>
|
||||
; PTR16_IDX16-NEXT: Loop %for.body: constant max backedge-taken count is -1
|
||||
; PTR16_IDX16-NEXT: Loop %for.body: constant max backedge-taken count is i32 -1
|
||||
; PTR16_IDX16-NEXT: Loop %for.body: symbolic max backedge-taken count is (-2 + (zext i16 (ptrtoint ptr @sext_like_noop to i16) to i32))<nsw>
|
||||
; PTR16_IDX16-NEXT: Loop %for.body: Predicated backedge-taken count is (-2 + (zext i16 (ptrtoint ptr @sext_like_noop to i16) to i32))<nsw>
|
||||
; PTR16_IDX16-NEXT: Predicates:
|
||||
|
||||
@@ -229,7 +229,7 @@ define void @ptrtoint_of_addrec(ptr %in, i32 %count) {
|
||||
; X64-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: (zext i32 %count to i64) LoopDispositions: { %loop: Computable }
|
||||
; X64-NEXT: Determining loop execution counts for: @ptrtoint_of_addrec
|
||||
; X64-NEXT: Loop %loop: backedge-taken count is (-1 + (zext i32 %count to i64))<nsw>
|
||||
; X64-NEXT: Loop %loop: constant max backedge-taken count is -1
|
||||
; X64-NEXT: Loop %loop: constant max backedge-taken count is i64 -1
|
||||
; X64-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (zext i32 %count to i64))<nsw>
|
||||
; X64-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (zext i32 %count to i64))<nsw>
|
||||
; X64-NEXT: Predicates:
|
||||
@@ -249,7 +249,7 @@ define void @ptrtoint_of_addrec(ptr %in, i32 %count) {
|
||||
; X32-NEXT: --> {1,+,1}<nuw><%loop> U: [1,0) S: [1,0) Exits: (zext i32 %count to i64) LoopDispositions: { %loop: Computable }
|
||||
; X32-NEXT: Determining loop execution counts for: @ptrtoint_of_addrec
|
||||
; X32-NEXT: Loop %loop: backedge-taken count is (-1 + (zext i32 %count to i64))<nsw>
|
||||
; X32-NEXT: Loop %loop: constant max backedge-taken count is -1
|
||||
; X32-NEXT: Loop %loop: constant max backedge-taken count is i64 -1
|
||||
; X32-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (zext i32 %count to i64))<nsw>
|
||||
; X32-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (zext i32 %count to i64))<nsw>
|
||||
; X32-NEXT: Predicates:
|
||||
@@ -397,7 +397,7 @@ define void @pr46786_c26_char(ptr %arg, ptr %arg1, ptr %arg2) {
|
||||
; X64-NEXT: --> {(1 + %arg),+,1}<nuw><%bb6> U: full-set S: full-set Exits: ((-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64) + %arg) LoopDispositions: { %bb6: Computable }
|
||||
; X64-NEXT: Determining loop execution counts for: @pr46786_c26_char
|
||||
; X64-NEXT: Loop %bb6: backedge-taken count is (-1 + (-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64))
|
||||
; X64-NEXT: Loop %bb6: constant max backedge-taken count is -1
|
||||
; X64-NEXT: Loop %bb6: constant max backedge-taken count is i64 -1
|
||||
; X64-NEXT: Loop %bb6: symbolic max backedge-taken count is (-1 + (-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64))
|
||||
; X64-NEXT: Loop %bb6: Predicated backedge-taken count is (-1 + (-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64))
|
||||
; X64-NEXT: Predicates:
|
||||
@@ -425,7 +425,7 @@ define void @pr46786_c26_char(ptr %arg, ptr %arg1, ptr %arg2) {
|
||||
; X32-NEXT: --> {(1 + %arg),+,1}<nuw><%bb6> U: full-set S: full-set Exits: ((-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32) + %arg) LoopDispositions: { %bb6: Computable }
|
||||
; X32-NEXT: Determining loop execution counts for: @pr46786_c26_char
|
||||
; X32-NEXT: Loop %bb6: backedge-taken count is (-1 + (-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32))
|
||||
; X32-NEXT: Loop %bb6: constant max backedge-taken count is -1
|
||||
; X32-NEXT: Loop %bb6: constant max backedge-taken count is i32 -1
|
||||
; X32-NEXT: Loop %bb6: symbolic max backedge-taken count is (-1 + (-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32))
|
||||
; X32-NEXT: Loop %bb6: Predicated backedge-taken count is (-1 + (-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32))
|
||||
; X32-NEXT: Predicates:
|
||||
@@ -486,7 +486,7 @@ define void @pr46786_c26_int(ptr %arg, ptr %arg1, ptr %arg2) {
|
||||
; X64-NEXT: --> {(4 + %arg),+,4}<nuw><%bb6> U: full-set S: full-set Exits: (4 + (4 * ((-4 + (-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64)) /u 4))<nuw> + %arg) LoopDispositions: { %bb6: Computable }
|
||||
; X64-NEXT: Determining loop execution counts for: @pr46786_c26_int
|
||||
; X64-NEXT: Loop %bb6: backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64)) /u 4)
|
||||
; X64-NEXT: Loop %bb6: constant max backedge-taken count is 4611686018427387903
|
||||
; X64-NEXT: Loop %bb6: constant max backedge-taken count is i64 4611686018427387903
|
||||
; X64-NEXT: Loop %bb6: symbolic max backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64)) /u 4)
|
||||
; X64-NEXT: Loop %bb6: Predicated backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %arg to i64)) + (ptrtoint ptr %arg1 to i64)) /u 4)
|
||||
; X64-NEXT: Predicates:
|
||||
@@ -516,7 +516,7 @@ define void @pr46786_c26_int(ptr %arg, ptr %arg1, ptr %arg2) {
|
||||
; X32-NEXT: --> {(4 + %arg),+,4}<nuw><%bb6> U: full-set S: full-set Exits: (4 + (4 * ((-4 + (-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32)) /u 4))<nuw> + %arg) LoopDispositions: { %bb6: Computable }
|
||||
; X32-NEXT: Determining loop execution counts for: @pr46786_c26_int
|
||||
; X32-NEXT: Loop %bb6: backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32)) /u 4)
|
||||
; X32-NEXT: Loop %bb6: constant max backedge-taken count is 1073741823
|
||||
; X32-NEXT: Loop %bb6: constant max backedge-taken count is i32 1073741823
|
||||
; X32-NEXT: Loop %bb6: symbolic max backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32)) /u 4)
|
||||
; X32-NEXT: Loop %bb6: Predicated backedge-taken count is ((-4 + (-1 * (ptrtoint ptr %arg to i32)) + (ptrtoint ptr %arg1 to i32)) /u 4)
|
||||
; X32-NEXT: Predicates:
|
||||
@@ -564,7 +564,7 @@ define void @ptrtoint_of_integer(ptr %arg, i64 %arg1, i1 %arg2) local_unnamed_ad
|
||||
; X64-NEXT: Loop %bb8: <multiple exits> Unpredictable backedge-taken count.
|
||||
; X64-NEXT: exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X64-NEXT: exit count for bb10: (-2 + (-1 * %arg1) + (ptrtoint ptr %arg to i64))
|
||||
; X64-NEXT: Loop %bb8: constant max backedge-taken count is -1
|
||||
; X64-NEXT: Loop %bb8: constant max backedge-taken count is i64 -1
|
||||
; X64-NEXT: Loop %bb8: symbolic max backedge-taken count is (-2 + (-1 * %arg1) + (ptrtoint ptr %arg to i64))
|
||||
; X64-NEXT: symbolic max exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X64-NEXT: symbolic max exit count for bb10: (-2 + (-1 * %arg1) + (ptrtoint ptr %arg to i64))
|
||||
@@ -584,7 +584,7 @@ define void @ptrtoint_of_integer(ptr %arg, i64 %arg1, i1 %arg2) local_unnamed_ad
|
||||
; X32-NEXT: Loop %bb8: <multiple exits> Unpredictable backedge-taken count.
|
||||
; X32-NEXT: exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X32-NEXT: exit count for bb10: (-2 + (zext i32 (ptrtoint ptr %arg to i32) to i64) + (-1 * %arg1))
|
||||
; X32-NEXT: Loop %bb8: constant max backedge-taken count is -1
|
||||
; X32-NEXT: Loop %bb8: constant max backedge-taken count is i64 -1
|
||||
; X32-NEXT: Loop %bb8: symbolic max backedge-taken count is (-2 + (zext i32 (ptrtoint ptr %arg to i32) to i64) + (-1 * %arg1))
|
||||
; X32-NEXT: symbolic max exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X32-NEXT: symbolic max exit count for bb10: (-2 + (zext i32 (ptrtoint ptr %arg to i32) to i64) + (-1 * %arg1))
|
||||
|
||||
@@ -40,7 +40,7 @@ define void @y(ptr %addr) {
|
||||
; CHECK-NEXT: --> {-4,+,1}<nsw><%loop> U: [-4,7) S: [-4,7) Exits: 6 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @y
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 10
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 10
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i8 10
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 10
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 10
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -15,7 +15,7 @@ define void @test-add-nuw(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> ((4 * (sext i32 {(1 + %offset)<nuw>,+,1}<nuw><%loop> to i64))<nsw> + %input) U: full-set S: full-set Exits: ((4 * (sext i32 (%offset + %numIterations) to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-add-nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -51,7 +51,7 @@ define void @test-addrec-nuw(ptr %input, i32 %offset, i32 %numIterations) {
|
||||
; CHECK-NEXT: --> ((4 * (sext i32 {(1 + (10 smax %offset))<nuw>,+,1}<nuw><%loop> to i64))<nsw> + %input) U: full-set S: full-set Exits: ((4 * (sext i32 ((10 smax %offset) + %numIterations) to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-addrec-nuw
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -89,7 +89,7 @@ define void @test-addrec-nsw-start-neg-strip-neg(ptr %input, i32 %offset, i32 %n
|
||||
; CHECK-NEXT: --> {(-4 + (4 * (-10 smin (sext i32 %offset to i64)))<nsw> + %input),+,-4}<nw><%loop> U: full-set S: full-set Exits: (-4 + (4 * (-10 smin (sext i32 %offset to i64)))<nsw> + (-4 * (zext i32 (-1 + (-1 * %numIterations)) to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-addrec-nsw-start-neg-strip-neg
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %numIterations))
|
||||
; 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 + (-1 * %numIterations))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %numIterations))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -127,7 +127,7 @@ define void @test-addrec-nsw-start-pos-strip-neg(ptr %input, i32 %offset, i32 %n
|
||||
; CHECK-NEXT: --> {(-4 + (4 * (10 smin (sext i32 %offset to i64)))<nsw> + %input),+,-4}<nw><%loop> U: full-set S: full-set Exits: (-4 + (4 * (10 smin (sext i32 %offset to i64)))<nsw> + (-4 * (zext i32 (-1 + (-1 * %numIterations)) to i64))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-addrec-nsw-start-pos-strip-neg
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (-1 * %numIterations))
|
||||
; 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 + (-1 * %numIterations))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (-1 * %numIterations))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -165,7 +165,7 @@ define void @test-addrec-nsw-start-pos-strip-pos(ptr %input, i32 %offset, i32 %n
|
||||
; CHECK-NEXT: --> {(4 + (4 * (zext i32 (10 smax %offset) to i64))<nuw><nsw> + %input)<nuw>,+,4}<nuw><%loop> U: [44,0) S: [44,0) Exits: (4 + (4 * (zext i32 (-1 + %numIterations) to i64))<nuw><nsw> + (4 * (zext i32 (10 smax %offset) to i64))<nuw><nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-addrec-nsw-start-pos-strip-pos
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -203,7 +203,7 @@ define void @test-addrec-nsw-start-neg-strip-pos(ptr %input, i32 %offset, i32 %n
|
||||
; CHECK-NEXT: --> {(4 + (4 * (-10 smax (sext i32 %offset to i64)))<nsw> + %input),+,4}<nw><%loop> U: full-set S: full-set Exits: (4 + (4 * (zext i32 (-1 + %numIterations) to i64))<nuw><nsw> + (4 * (-10 smax (sext i32 %offset to i64)))<nsw> + %input) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test-addrec-nsw-start-neg-strip-pos
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + %numIterations)
|
||||
; 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 + %numIterations)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %numIterations)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -136,7 +136,7 @@ define void @add_6(i32 %n) {
|
||||
; CHECK-NEXT: --> {6,+,6}<nuw><%loop> U: [6,-3) S: [-2147483648,2147483647) Exits: (6 + (6 * ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 6) + (1 umin %n)))) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @add_6
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 6) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 715827882
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 715827882
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 6) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 6) + (1 umin %n))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -163,7 +163,7 @@ define void @add_7(i32 %n) {
|
||||
; CHECK-NEXT: --> {7,+,7}<nuw><%loop> U: [7,-3) S: [7,0) Exits: (7 + (7 * ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n)))) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @add_7
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 613566756
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 613566756
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 7) + (1 umin %n))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -190,7 +190,7 @@ define void @add_8(i32 %n) {
|
||||
; CHECK-NEXT: --> {8,+,8}<nuw><%loop> U: [8,-7) S: [-2147483648,2147483641) Exits: (8 + (8 * ((7 + %n) /u 8))<nuw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @add_8
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((7 + %n) /u 8)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 536870911
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 536870911
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((7 + %n) /u 8)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((7 + %n) /u 8)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -218,7 +218,7 @@ define void @add_9(i32 %n) {
|
||||
; CHECK-NEXT: --> {9,+,9}<nuw><%loop> U: [9,-3) S: [9,0) Exits: (9 + (9 * ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n)))) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @add_9
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 477218588
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 477218588
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -246,7 +246,7 @@ define void @add_10(i32 %n) {
|
||||
; CHECK-NEXT: --> {10,+,10}<nuw><%loop> U: [10,-5) S: [-2147483648,2147483647) Exits: (10 + (10 * ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 10) + (1 umin %n)))) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @add_10
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 10) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 429496729
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 429496729
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 10) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 10) + (1 umin %n))
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -511,7 +511,7 @@ define void @truncate(i16 %n) {
|
||||
; CHECK-NEXT: --> {9,+,9}<%loop> U: full-set S: full-set Exits: (9 + (9 * (trunc i16 ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n)) to i8))) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @truncate
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 7281
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i16 7281
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n))
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is ((((-1 * (1 umin %n))<nuw><nsw> + %n) /u 9) + (1 umin %n))
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -24,7 +24,7 @@ define dso_local i32 @test_loop(ptr nocapture noundef readonly %x) {
|
||||
; CHECK-NEXT: --> {2,+,1}<nuw><nsw><%for.body> U: [2,11) S: [2,11) Exits: 10 LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_loop
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is 8
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is 8
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 8
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 8
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 8
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -30,7 +30,7 @@ define void @foo(ptr nocapture %arg, i32 %arg1, i32 %arg2) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%bb7> U: [1,2147483648) S: [1,2147483648) Exits: (zext i32 %arg2 to i64) LoopDispositions: { %bb7: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @foo
|
||||
; CHECK-NEXT: Loop %bb7: backedge-taken count is (-1 + (zext i32 %arg2 to i64))<nsw>
|
||||
; CHECK-NEXT: Loop %bb7: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %bb7: constant max backedge-taken count is i64 2147483646
|
||||
; CHECK-NEXT: Loop %bb7: symbolic max backedge-taken count is (-1 + (zext i32 %arg2 to i64))<nsw>
|
||||
; CHECK-NEXT: Loop %bb7: Predicated backedge-taken count is (-1 + (zext i32 %arg2 to i64))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -97,7 +97,7 @@ define void @goo(ptr nocapture %arg3, i32 %arg4, i32 %arg5) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%bb7> U: [1,2147483648) S: [1,2147483648) Exits: (zext i32 %arg5 to i128) LoopDispositions: { %bb7: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @goo
|
||||
; CHECK-NEXT: Loop %bb7: backedge-taken count is (-1 + (zext i32 %arg5 to i128))<nsw>
|
||||
; CHECK-NEXT: Loop %bb7: constant max backedge-taken count is 2147483646
|
||||
; CHECK-NEXT: Loop %bb7: constant max backedge-taken count is i128 2147483646
|
||||
; CHECK-NEXT: Loop %bb7: symbolic max backedge-taken count is (-1 + (zext i32 %arg5 to i128))<nsw>
|
||||
; CHECK-NEXT: Loop %bb7: Predicated backedge-taken count is (-1 + (zext i32 %arg5 to i128))<nsw>
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -20,7 +20,7 @@ define void @f(i1 %c) {
|
||||
; CHECK-NEXT: --> {(zext i32 %start to i64),+,(sext i32 %step to i64)}<nsw><%loop> U: [0,101) S: [0,101) Exits: ((zext i32 %start to i64) + (99 * (sext i32 %step to i64))<nsw>) LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @f
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 99
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 99
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 99
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 99
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 99
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -6,7 +6,7 @@ define void @test0(i32 %init) {
|
||||
; CHECK-LABEL: 'test0'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test0
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 32
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
@@ -28,7 +28,7 @@ define void @test1(i32 %init) {
|
||||
; CHECK-LABEL: 'test1'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test1
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 32
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
@@ -74,7 +74,7 @@ define void @test3(ptr %init.ptr) {
|
||||
; CHECK-LABEL: 'test3'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test3
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 32
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
@@ -97,7 +97,7 @@ define void @test4(ptr %init.ptr) {
|
||||
; CHECK-LABEL: 'test4'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test4
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 32
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
@@ -167,7 +167,7 @@ define void @test7(i32 %init) {
|
||||
; CHECK-LABEL: 'test7'
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test7
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 32
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 32
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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***
|
||||
@@ -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***
|
||||
@@ -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***
|
||||
@@ -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***
|
||||
@@ -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
|
||||
@@ -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***
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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***
|
||||
@@ -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***
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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.
|
||||
;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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))
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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))
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -14,7 +14,7 @@ define void @test_trip_multiple_4(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -49,7 +49,7 @@ define void @test_trip_multiple_4_guard(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_guard
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -85,7 +85,7 @@ define void @test_trip_multiple_4_ugt_5(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_ugt_5
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -121,7 +121,7 @@ define void @test_trip_multiple_4_ugt_5_order_swapped(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_ugt_5_order_swapped
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -156,7 +156,7 @@ define void @test_trip_multiple_4_sgt_5(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_sgt_5
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -192,7 +192,7 @@ define void @test_trip_multiple_4_sgt_5_order_swapped(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_sgt_5_order_swapped
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -227,7 +227,7 @@ define void @test_trip_multiple_4_uge_5(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_uge_5
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -263,7 +263,7 @@ define void @test_trip_multiple_4_uge_5_order_swapped(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_uge_5_order_swapped
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -299,7 +299,7 @@ define void @test_trip_multiple_4_sge_5(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_sge_5
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -334,7 +334,7 @@ define void @test_trip_multiple_4_sge_5_order_swapped(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_sge_5_order_swapped
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -370,7 +370,7 @@ define void @test_trip_multiple_4_icmp_ops_swapped(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_icmp_ops_swapped
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -405,7 +405,7 @@ define void @test_trip_multiple_4_upper_lower_bounds(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_upper_lower_bounds
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -442,7 +442,7 @@ define void @test_trip_multiple_4_upper_lower_bounds_swapped1(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_upper_lower_bounds_swapped1
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -479,7 +479,7 @@ define void @test_trip_multiple_4_upper_lower_bounds_swapped2(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_4_upper_lower_bounds_swapped2
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -516,7 +516,7 @@ define void @test_trip_multiple_5(i32 %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-2147483648) S: [1,-2147483648) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trip_multiple_5
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -553,7 +553,7 @@ define void @test_trunc_operand_larger_than_urem_expr(i64 %N) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%for.body> U: [1,-9223372036854775808) S: [1,-9223372036854775808) Exits: %N LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @test_trunc_operand_larger_than_urem_expr
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -1
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i64 -1
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %N)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -25,7 +25,7 @@ define void @trip_multiple_3(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,0) S: [1,0) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_3
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -61,7 +61,7 @@ define void @trip_multiple_4(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-3) S: [1,-3) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_4
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -5
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -5
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -98,7 +98,7 @@ define void @trip_multiple_5(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,0) S: [1,0) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_5
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; 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 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -135,7 +135,7 @@ define void @trip_multiple_6(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-3) S: [1,-3) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_6
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -5
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -5
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -172,7 +172,7 @@ define void @trip_multiple_7(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-3) S: [1,-3) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_7
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -5
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -5
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -209,7 +209,7 @@ define void @trip_multiple_8(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-7) S: [1,-7) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_8
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -9
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -9
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -245,7 +245,7 @@ define void @trip_multiple_9(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-3) S: [1,-3) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_9
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -5
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -5
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -281,7 +281,7 @@ define void @trip_multiple_10(i32 noundef %num) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%for.body> U: [1,-5) S: [1,-5) Exits: %num LoopDispositions: { %for.body: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @trip_multiple_10
|
||||
; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is -7
|
||||
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 -7
|
||||
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is (-1 + %num)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -16,7 +16,7 @@ define void @umin_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (%cmp1 umin %cmp2) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @umin_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -52,7 +52,7 @@ define void @ule_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ule_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -88,7 +88,7 @@ define void @uge_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (sext i32 %len to i64) U: [-2147483648,2147483648) S: [-2147483648,2147483648) Exits: (sext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @uge_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: 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 (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -124,7 +124,7 @@ define void @ult_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ult_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -160,7 +160,7 @@ define void @ugt_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (sext i32 %len to i64) U: [-2147483648,2147483648) S: [-2147483648,2147483648) Exits: (sext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @ugt_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: 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 (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -196,7 +196,7 @@ define void @sle_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sle_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -232,7 +232,7 @@ define void @sge_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sge_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -268,7 +268,7 @@ define void @slt_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (sext i32 %len to i64) U: [-2147483648,2147483648) S: [-2147483648,2147483648) Exits: (sext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @slt_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: 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 (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (sext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
@@ -304,7 +304,7 @@ define void @sgt_sext_x_zext_x(i32 %len) {
|
||||
; CHECK-NEXT: --> (zext i32 %len to i64) U: [0,4294967296) S: [0,4294967296) Exits: (zext i32 %len to i64) LoopDispositions: { %loop: Invariant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @sgt_sext_x_zext_x
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 4294967295
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 4294967295
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i32 %len to i64)
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -48,7 +48,7 @@ define void @merge_values_with_ranges_looped(ptr %a_len_ptr, ptr %b_len_ptr) {
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><nsw><%loop> U: [1,101) S: [1,101) Exits: 100 LoopDispositions: { %loop: Computable }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @merge_values_with_ranges_looped
|
||||
; CHECK-NEXT: Loop %loop: backedge-taken count is 99
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 99
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 99
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 99
|
||||
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 99
|
||||
; CHECK-NEXT: Predicates:
|
||||
|
||||
@@ -23,7 +23,7 @@ define i32 @wc_max() {
|
||||
; CHECK-NEXT: --> (%cond_1 umin %widenable_cond3) U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Variant }
|
||||
; CHECK-NEXT: Determining loop execution counts for: @wc_max
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is 1999
|
||||
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 1999
|
||||
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 1999
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
|
||||
@@ -4,11 +4,6 @@
|
||||
; Make sure the SCEV for %invar is invalidated properly when the instruction is
|
||||
; moved by LoopDeletion.
|
||||
|
||||
; CHECK: Determining loop execution counts for: @test
|
||||
; CHECK-NEXT: Loop %inner: backedge-taken count is (405 + %invar)<nuw><nsw>
|
||||
; CHECK-NEXT: Loop %inner: constant max backedge-taken count is 405
|
||||
; CHECK-NEXT: Loop %inner: symbolic max backedge-taken count is (405 + %invar)<nuw><nsw>
|
||||
; CHECK-NEXT: Loop %inner: Predicated backedge-taken count is (405 + %invar)<nuw><nsw>
|
||||
|
||||
define void @test_pr57837() {
|
||||
; CHECK-LABEL: @test_pr57837(
|
||||
|
||||
@@ -13,7 +13,7 @@ target datalayout = "n8:16:32:64"
|
||||
; CHECK: %[[PHI:.*]] = phi i32 [ 0, %entry ], [ %{{.*}}, %if.then5 ], [ %[[PHI]], %if.end ]
|
||||
; CHECK-LABEL: Determining loop execution counts for: @test
|
||||
; CHECK: Loop %for.body18: Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %for.body18: constant max backedge-taken count is 2147483646
|
||||
; CHECK: Loop %for.body18: constant max backedge-taken count is i32 2147483646
|
||||
; CHECK: Loop %for.body18: Unpredictable predicated backedge-taken count.
|
||||
; CHECK: Loop %for.cond: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %for.cond: Unpredictable constant max backedge-taken count.
|
||||
@@ -25,10 +25,10 @@ target datalayout = "n8:16:32:64"
|
||||
; CHECK: phi i32 [ %{{.*}}, %if.then5 ], [ 0, %entry ]
|
||||
; CHECK-LABEL: Determining loop execution counts for: @test
|
||||
; CHECK: Loop %for.body18: Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %for.body18: constant max backedge-taken count is 2147483646
|
||||
; CHECK: Loop %for.body18: constant max backedge-taken count is i32 2147483646
|
||||
; CHECK: Loop %for.body18: Unpredictable predicated backedge-taken count.
|
||||
; CHECK: Loop %for.cond: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %for.cond: constant max backedge-taken count is -2147483647
|
||||
; CHECK: Loop %for.cond: constant max backedge-taken count is i32 -2147483647
|
||||
; CHECK: Loop %for.cond: Unpredictable predicated backedge-taken count.
|
||||
; CHECK: Loop %for.cond.outer: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %for.cond.outer: Unpredictable constant max backedge-taken count.
|
||||
@@ -82,7 +82,7 @@ declare void @foo() nounwind
|
||||
; First SCEV print:
|
||||
; CHECK-LABEL: Determining loop execution counts for: @mergeExit
|
||||
; CHECK: Loop %while.cond191: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %while.cond191: constant max backedge-taken count is -1
|
||||
; CHECK: Loop %while.cond191: constant max backedge-taken count is i32 -1
|
||||
; CHECK: Loop %while.cond191: Unpredictable predicated backedge-taken count.
|
||||
; CHECK: Loop %while.cond191.outer: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %while.cond191.outer: Unpredictable constant max backedge-taken count.
|
||||
@@ -92,10 +92,10 @@ declare void @foo() nounwind
|
||||
; Second SCEV print:
|
||||
; CHECK-LABEL: Determining loop execution counts for: @mergeExit
|
||||
; CHECK: Loop %while.cond191: <multiple exits> backedge-taken count is 0
|
||||
; CHECK: Loop %while.cond191: constant max backedge-taken count is 0
|
||||
; CHECK: Loop %while.cond191: constant max backedge-taken count is i32 0
|
||||
; CHECK: Loop %while.cond191: Predicated backedge-taken count is 0
|
||||
; CHECK: Loop %while.cond191.outer: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK: Loop %while.cond191.outer: constant max backedge-taken count is false
|
||||
; CHECK: Loop %while.cond191.outer: constant max backedge-taken count is i1 false
|
||||
; CHECK: Loop %while.cond191.outer: Unpredictable predicated backedge-taken count.
|
||||
define void @mergeExit(i32 %MapAttrCount) nounwind uwtable ssp {
|
||||
entry:
|
||||
|
||||
Reference in New Issue
Block a user