[llvm] 1f40870 - [NFC][ScalarEvolution] Precommit tests for D104075.

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 9 23:33:52 PDT 2021


Author: Eli Friedman
Date: 2021-07-09T23:33:19-07:00
New Revision: 1f40870dda4604c90a0b60de69b1080870c646f5

URL: https://github.com/llvm/llvm-project/commit/1f40870dda4604c90a0b60de69b1080870c646f5
DIFF: https://github.com/llvm/llvm-project/commit/1f40870dda4604c90a0b60de69b1080870c646f5.diff

LOG: [NFC][ScalarEvolution] Precommit tests for D104075.

Added: 
    

Modified: 
    llvm/test/Analysis/ScalarEvolution/lt-overflow.ll
    llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
    llvm/test/Analysis/ScalarEvolution/trip-count13.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/ScalarEvolution/lt-overflow.ll b/llvm/test/Analysis/ScalarEvolution/lt-overflow.ll
index 3d1c565821579..99eed7d0b264e 100644
--- a/llvm/test/Analysis/ScalarEvolution/lt-overflow.ll
+++ b/llvm/test/Analysis/ScalarEvolution/lt-overflow.ll
@@ -27,6 +27,8 @@ target triple = "x86_64-unknown-linux-gnu"
 ; CHECK: Loop %for.body: Unpredictable backedge-taken count.
 ; CHECK: Determining loop execution counts for: @test_other_exit
 ; CHECK: Loop %for.body: <multiple exits> Unpredictable backedge-taken count.
+; CHECK: Determining loop execution counts for: @test_gt
+; CHECK: Loop %for.body: Unpredictable backedge-taken count.
 
 define void @test(i32 %N) mustprogress {
 entry:
@@ -184,4 +186,16 @@ for.cond.cleanup:
   ret void
 }
 
+define void @test_gt(i32 %S, i32 %N) mustprogress {
+entry:
+  br label %for.body
 
+for.body:
+  %iv = phi i32 [ %iv.next, %for.body ], [ %S, %entry ]
+  %iv.next = add i32 %iv, -2
+  %cmp = icmp ugt i32 %iv.next, %N
+  br i1 %cmp, label %for.body, label %for.cond.cleanup
+
+for.cond.cleanup:
+  ret void
+}

diff  --git a/llvm/test/Analysis/ScalarEvolution/max-trip-count.ll b/llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
index 393cade11bb78..b3e3184b7f3df 100644
--- a/llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
+++ b/llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
@@ -432,3 +432,26 @@ loop:
 loop.exit:
   ret void
 }
+
+; sgt with negative stride
+define void @changing_end_bound7(i32 %start, i32* %n_addr, i32* %addr) {
+; CHECK-LABEL: Determining loop execution counts for: @changing_end_bound7
+; CHECK: Loop %loop: Unpredictable backedge-taken count.
+; CHECK: Loop %loop: Unpredictable max backedge-taken count.
+entry:
+  br label %loop
+
+loop:
+  %iv = phi i32 [ %start, %entry ], [ %iv.next, %loop ]
+  %acc = phi i32 [ 0, %entry ], [ %acc.next, %loop ]
+  %val = load atomic i32, i32* %addr unordered, align 4
+  fence acquire
+  %acc.next = add i32 %acc, %val
+  %iv.next = add i32 %iv, -1
+  %n = load atomic i32, i32* %n_addr unordered, align 4
+  %cmp = icmp sgt i32 %iv.next, %n
+  br i1 %cmp, label %loop, label %loop.exit
+
+loop.exit:
+  ret void
+}

diff  --git a/llvm/test/Analysis/ScalarEvolution/trip-count13.ll b/llvm/test/Analysis/ScalarEvolution/trip-count13.ll
index 42d96ca9d42f4..a4f3008b355c6 100644
--- a/llvm/test/Analysis/ScalarEvolution/trip-count13.ll
+++ b/llvm/test/Analysis/ScalarEvolution/trip-count13.ll
@@ -80,3 +80,22 @@ loop:
 leave:
   ret void
 }
+
+define void @s_2(i8 %start) {
+entry:
+  %rhs = add i8 %start, -100
+  br label %loop
+
+loop:
+  %iv = phi i8 [ %start, %entry ], [ %iv.inc, %loop ]
+  %iv.inc = add nsw i8 %iv, -1
+  %iv.cmp = icmp sgt i8 %iv, %rhs
+  br i1 %iv.cmp, label %loop, label %leave
+
+; CHECK-LABEL: Determining loop execution counts for: @s_2
+; CHECK-NEXT: Loop %loop: backedge-taken count is ((-1 * ((-100 + %start) smin %start)) + %start)
+; CHECK-NEXT: Loop %loop: max backedge-taken count is -1
+
+leave:
+  ret void
+}


        


More information about the llvm-commits mailing list