[llvm] 69c1cbe - [SCEV] Add test case where applying zext info pessimizes BTC.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 12 04:20:17 PST 2021


Author: Florian Hahn
Date: 2021-11-12T12:19:35Z
New Revision: 69c1cbe20f5db9b7a3b7086acabd92db1cd59cad

URL: https://github.com/llvm/llvm-project/commit/69c1cbe20f5db9b7a3b7086acabd92db1cd59cad
DIFF: https://github.com/llvm/llvm-project/commit/69c1cbe20f5db9b7a3b7086acabd92db1cd59cad.diff

LOG: [SCEV] Add test case where applying zext info pessimizes BTC.

Add an additional test case for D113578.

Added: 
    

Modified: 
    llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll b/llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
index 5d99e2022a40..cceb25d5cff6 100644
--- a/llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
+++ b/llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
@@ -197,6 +197,40 @@ exit:
   ret void
 }
 
+define void @guard_pessimizes_analysis_step2(i1 %c, i32 %N) {
+; CHECK-LABEL: 'guard_pessimizes_analysis_step2'
+; CHECK:       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: max backedge-taken count is 6
+; CHECK-NEXT:  Loop %loop: Predicated backedge-taken count is ((14 + (-1 * %init)<nsw>)<nsw> /u 2)
+; CHECK-NEXT:   Predicates:
+; CHECK-EMPTY:
+; CHECK-NEXT:  Loop %loop: Trip multiple is 1
+;
+entry:
+  %N.ext = zext i32 %N to i64
+  br i1 %c, label %bb1, label %guard
+
+bb1:
+  br label %guard
+
+guard:
+  %init = phi i64 [ 2, %entry ], [ 4, %bb1 ]
+  %c.1 = icmp ult i64 %init, %N.ext
+  br i1 %c.1, label %loop.ph, label %exit
+
+loop.ph:
+  br label %loop
+
+loop:
+  %iv = phi i64 [ %iv.next, %loop ], [ %init, %loop.ph ]
+  %iv.next = add i64 %iv, 2
+  %exitcond = icmp eq i64 %iv.next, 16
+  br i1 %exitcond, label %exit, label %loop
+
+exit:
+  ret void
+}
 declare void @use(i64)
 
 declare i32 @llvm.umin.i32(i32, i32)


        


More information about the llvm-commits mailing list