forked from OSchip/llvm-project
[SCEV] Fix misplaced \n in printout of max symbolic exit counts
This commit is contained in:
parent
fa71c16455
commit
4496d553bd
|
@ -13391,6 +13391,7 @@ static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,
|
|||
OS << "Unpredictable symbolic max backedge-taken count. ";
|
||||
}
|
||||
|
||||
OS << "\n";
|
||||
if (ExitingBlocks.size() > 1)
|
||||
for (BasicBlock *ExitingBlock : ExitingBlocks) {
|
||||
OS << " symbolic max exit count for " << ExitingBlock->getName() << ": "
|
||||
|
@ -13398,8 +13399,7 @@ static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,
|
|||
<< "\n";
|
||||
}
|
||||
|
||||
OS << "\n"
|
||||
"Loop ";
|
||||
OS << "Loop ";
|
||||
L->getHeader()->printAsOperand(OS, /*PrintType=*/false);
|
||||
OS << ": ";
|
||||
|
||||
|
|
|
@ -31,9 +31,10 @@ define void @test(i64* %arg) {
|
|||
; 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: symbolic max backedge-taken count is false symbolic max exit count for loop2.header: ***COULDNOTCOMPUTE***
|
||||
; 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
|
||||
; CHECK: Loop %loop2.header: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop2.header: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop.header: Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop.header: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop.header: Unpredictable symbolic max backedge-taken count.
|
||||
|
|
|
@ -553,9 +553,10 @@ define void @test-add-not-header3(float* %input, i32 %offset, i32 %numIterations
|
|||
; 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: symbolic max backedge-taken count is (-1 + %numIterations) symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; 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)
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
i1* %cond_buf) {
|
||||
entry:
|
||||
|
@ -1500,9 +1501,10 @@ define void @test-sext-sub(float* %input, i32 %sub, i32 %numIterations) {
|
|||
; 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: symbolic max backedge-taken count is (-1 + %numIterations) symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; 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)
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
br label %loop
|
||||
|
@ -1620,9 +1622,10 @@ define i32 @pr28932() {
|
|||
; CHECK-NEXT: exit count for if.then: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for if.else: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %for.cond: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %for.cond: Unpredictable symbolic max backedge-taken count. symbolic max exit count for if.then: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %for.cond: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for if.then: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for if.else: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %for.cond: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %for.cond: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
%pre = load %struct.anon*, %struct.anon** @a, align 8
|
||||
|
|
|
@ -61,25 +61,28 @@ define dso_local i32 @f() {
|
|||
; 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: symbolic max backedge-taken count is 0 symbolic max exit count for for.cond6: 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***
|
||||
; CHECK: Loop %for.cond6: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %for.cond6: Unpredictable predicated backedge-taken count.
|
||||
; 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: symbolic max backedge-taken count is 0 symbolic max exit count for inner.loop: 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***
|
||||
; CHECK: Loop %inner.loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %inner.loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer.loop: <multiple exits> Unpredictable backedge-taken count.
|
||||
; 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: symbolic max backedge-taken count is 2 symbolic max exit count for for.cond6: ***COULDNOTCOMPUTE***
|
||||
; 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***
|
||||
; CHECK-NEXT: symbolic max exit count for for.inc13.3: 2
|
||||
; CHECK: Loop %outer.loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer.loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
store i32 3, i32* @a, align 4
|
||||
|
|
|
@ -223,9 +223,10 @@ define void @test_other_exit(i32 %N) mustprogress {
|
|||
; 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: symbolic max backedge-taken count is 9 symbolic max exit count for for.body: 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***
|
||||
; CHECK: Loop %for.body: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %for.body: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
br label %for.body
|
||||
|
|
|
@ -27,9 +27,10 @@ define i32 @test_01(i32 %start, i32* %p, i32* %q) {
|
|||
; 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: symbolic max backedge-taken count is (zext i32 %start to i64) symbolic max exit count for loop: (zext i32 %start to i64)
|
||||
; 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***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
%0 = zext i32 %start to i64
|
||||
|
|
|
@ -21,16 +21,18 @@ define i32 @test_01(i32 %a, i32 %b) {
|
|||
; 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: symbolic max backedge-taken count is %b symbolic max exit count for inner: %b
|
||||
; 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***
|
||||
; CHECK: Loop %inner: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %inner: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for inner: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for outer.backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable symbolic max backedge-taken count. symbolic max exit count for inner: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for inner: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for outer.backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %outer: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
%b_is_non_negative = icmp sge i32 %b, 0
|
||||
|
@ -83,16 +85,18 @@ define i32 @test_02(i32 %a, i32 %b) {
|
|||
; 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: symbolic max backedge-taken count is ((-1 * %outer.iv) + (%b smax %outer.iv)) symbolic max exit count for inner: ((-1 * %outer.iv) + (%b smax %outer.iv))
|
||||
; 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***
|
||||
; CHECK: Loop %inner: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %inner: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer: <multiple exits> Unpredictable backedge-taken count.
|
||||
; CHECK-NEXT: exit count for inner: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for outer.backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable symbolic max backedge-taken count. symbolic max exit count for inner: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for inner: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for outer.backedge: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %outer: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %outer: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
%b_is_non_negative = icmp sge i32 %b, 0
|
||||
|
|
|
@ -386,9 +386,10 @@ define void @sadd_symbolic_non_latch(i16 %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: symbolic max backedge-taken count is ((230 + (-1 * %start)) umin (32767 + (-1 * %start))) symbolic max exit count for for.body: (32767 + (-1 * %start))
|
||||
; 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))
|
||||
; CHECK: Loop %for.body: Predicated backedge-taken count is ((230 + (-1 * %start)) umin (32767 + (-1 * %start)))
|
||||
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is ((230 + (-1 * %start)) umin (32767 + (-1 * %start)))
|
||||
; CHECK-NEXT: Predicates:
|
||||
; CHECK: Loop %for.body: Trip multiple is 1
|
||||
;
|
||||
|
|
|
@ -25,9 +25,10 @@ define void @test_and(i1 %boolcond) {
|
|||
; 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: symbolic max backedge-taken count is 2 symbolic max exit count for loop: 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***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
%conv = zext i1 %boolcond to i32
|
||||
|
@ -74,9 +75,10 @@ define void @test_or(i1 %boolcond) {
|
|||
; 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: symbolic max backedge-taken count is 2 symbolic max exit count for loop: 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***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
%conv = zext i1 %boolcond to i32
|
||||
|
|
|
@ -565,9 +565,10 @@ define void @ptrtoint_of_integer(i8* %arg, i64 %arg1, i1 %arg2) local_unnamed_ad
|
|||
; X64-NEXT: exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X64-NEXT: exit count for bb10: (-2 + (-1 * %arg1) + (ptrtoint i8* %arg to i64))
|
||||
; X64-NEXT: Loop %bb8: constant max backedge-taken count is -1
|
||||
; X64-NEXT: Loop %bb8: symbolic max backedge-taken count is (-2 + (-1 * %arg1) + (ptrtoint i8* %arg to i64)) symbolic max exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X64-NEXT: Loop %bb8: symbolic max backedge-taken count is (-2 + (-1 * %arg1) + (ptrtoint i8* %arg to i64))
|
||||
; X64-NEXT: symbolic max exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X64-NEXT: symbolic max exit count for bb10: (-2 + (-1 * %arg1) + (ptrtoint i8* %arg to i64))
|
||||
; X64: Loop %bb8: Unpredictable predicated backedge-taken count.
|
||||
; X64-NEXT: Loop %bb8: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
; X32-LABEL: 'ptrtoint_of_integer'
|
||||
; X32-NEXT: Classifying expressions for: @ptrtoint_of_integer
|
||||
|
@ -584,9 +585,10 @@ define void @ptrtoint_of_integer(i8* %arg, i64 %arg1, i1 %arg2) local_unnamed_ad
|
|||
; X32-NEXT: exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X32-NEXT: exit count for bb10: (-2 + (zext i32 (ptrtoint i8* %arg to i32) to i64) + (-1 * %arg1))
|
||||
; X32-NEXT: Loop %bb8: constant max backedge-taken count is -1
|
||||
; X32-NEXT: Loop %bb8: symbolic max backedge-taken count is (-2 + (zext i32 (ptrtoint i8* %arg to i32) to i64) + (-1 * %arg1)) symbolic max exit count for bb8: ***COULDNOTCOMPUTE***
|
||||
; X32-NEXT: Loop %bb8: symbolic max backedge-taken count is (-2 + (zext i32 (ptrtoint i8* %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 i8* %arg to i32) to i64) + (-1 * %arg1))
|
||||
; X32: Loop %bb8: Unpredictable predicated backedge-taken count.
|
||||
; X32-NEXT: Loop %bb8: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
bb:
|
||||
%i = icmp eq i8* %arg, null
|
||||
|
|
|
@ -16,9 +16,10 @@ define void @test_preinc_ult(i64 %len) {
|
|||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count. symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
start:
|
||||
br label %loop
|
||||
|
@ -51,9 +52,10 @@ define void @test_postinc_ult(i64 %len) {
|
|||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count. symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
start:
|
||||
br label %loop
|
||||
|
@ -85,9 +87,10 @@ define void @test_preinc_slt(i64 %len) {
|
|||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count. symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
start:
|
||||
br label %loop
|
||||
|
@ -120,9 +123,10 @@ define void @test_postinc_slt(i64 %len) {
|
|||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count. symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
start:
|
||||
br label %loop
|
||||
|
@ -154,9 +158,10 @@ define void @test_preinc_sgt(i64 %lim) {
|
|||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count. symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
start:
|
||||
br label %loop
|
||||
|
@ -189,9 +194,10 @@ define void @test_postinc_sgt(i64 %lim) {
|
|||
; CHECK-NEXT: exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count. symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
|
||||
; CHECK-NEXT: symbolic max exit count for loop: ***COULDNOTCOMPUTE***
|
||||
; CHECK-NEXT: symbolic max exit count for latch: ***COULDNOTCOMPUTE***
|
||||
; CHECK: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
start:
|
||||
br label %loop
|
||||
|
|
|
@ -86,9 +86,10 @@ define void @s32_max2_unpredictable_exit(i32 %n, i32 %x, i32* %p) {
|
|||
; 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: symbolic max backedge-taken count is (((-1 * %n) + ((2 + %n) smax %n)) umin ((-1 * %n) + %x)) symbolic max exit count for do.body: ((-1 * %n) + %x)
|
||||
; 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))
|
||||
; CHECK: Loop %do.body: Predicated backedge-taken count is (((-1 * %n) + ((2 + %n) smax %n)) umin ((-1 * %n) + %x))
|
||||
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is (((-1 * %n) + ((2 + %n) smax %n)) umin ((-1 * %n) + %x))
|
||||
; CHECK-NEXT: Predicates:
|
||||
; CHECK: Loop %do.body: Trip multiple is 1
|
||||
;
|
||||
|
@ -197,9 +198,10 @@ define void @u32_max2_unpredictable_exit(i32 %n, i32 %x, i32* %p) {
|
|||
; 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: symbolic max backedge-taken count is (((-1 * %n) + ((2 + %n) umax %n)) umin ((-1 * %n) + %x)) symbolic max exit count for do.body: ((-1 * %n) + %x)
|
||||
; 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))
|
||||
; CHECK: Loop %do.body: Predicated backedge-taken count is (((-1 * %n) + ((2 + %n) umax %n)) umin ((-1 * %n) + %x))
|
||||
; CHECK-NEXT: Loop %do.body: Predicated backedge-taken count is (((-1 * %n) + ((2 + %n) umax %n)) umin ((-1 * %n) + %x))
|
||||
; CHECK-NEXT: Predicates:
|
||||
; CHECK: Loop %do.body: Trip multiple is 1
|
||||
;
|
||||
|
|
|
@ -10,9 +10,10 @@ define i8 @f() {
|
|||
; 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: symbolic max backedge-taken count is 1 symbolic max exit count for bb: ***COULDNOTCOMPUTE***
|
||||
; 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
|
||||
; CHECK: Loop %bb: Unpredictable predicated backedge-taken count.
|
||||
; CHECK-NEXT: Loop %bb: Unpredictable predicated backedge-taken count.
|
||||
;
|
||||
entry:
|
||||
tail call i32 @fegetround( ) ; <i32>:0 [#uses=1]
|
||||
|
|
Loading…
Reference in New Issue