[llvm] 10184af - [SCEV] Add test for PR54191 (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 7 03:16:45 PST 2023


Author: Nikita Popov
Date: 2023-03-07T12:16:36+01:00
New Revision: 10184afcb2cceb4553beca8b0dfc956279c0ca93

URL: https://github.com/llvm/llvm-project/commit/10184afcb2cceb4553beca8b0dfc956279c0ca93
DIFF: https://github.com/llvm/llvm-project/commit/10184afcb2cceb4553beca8b0dfc956279c0ca93.diff

LOG: [SCEV] Add test for PR54191 (NFC)

Added: 
    

Modified: 
    llvm/test/Analysis/ScalarEvolution/finite-trip-count.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/ScalarEvolution/finite-trip-count.ll b/llvm/test/Analysis/ScalarEvolution/finite-trip-count.ll
index 9eefbd7e2dc45..6a0ecfbe4d833 100644
--- a/llvm/test/Analysis/ScalarEvolution/finite-trip-count.ll
+++ b/llvm/test/Analysis/ScalarEvolution/finite-trip-count.ll
@@ -189,3 +189,28 @@ for.body:
 for.end:
   ret void
 }
+
+; FIXME: It would be better to compute ((-2 + %n) /u 2) as trip count here.
+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 ((-3 + (4 smax (1 + %n)<nsw>))<nsw> /u 2)
+; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is 4611686018427387901
+; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is ((-3 + (4 smax (1 + %n)<nsw>))<nsw> /u 2)
+; CHECK-NEXT:  Loop %loop: Predicated backedge-taken count is ((-3 + (4 smax (1 + %n)<nsw>))<nsw> /u 2)
+; CHECK-NEXT:   Predicates:
+; CHECK:       Loop %loop: Trip multiple is 1
+;
+entry:
+  %guard = icmp sgt i64 %n, 1
+  br i1 %guard, label %loop, label %exit
+
+loop:
+  %iv = phi i64 [ 2, %entry ], [ %iv.next, %loop ]
+  %iv.next = add nuw nsw i64 %iv, 2
+  %cmp = icmp sle i64 %iv.next, %n
+  br i1 %cmp, label %loop, label %exit
+
+exit:
+  ret void
+}


        


More information about the llvm-commits mailing list