[llvm] 5c5ae6a - [ScalarEvolution] Add test for preserving add overflow flags.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 9 01:20:27 PDT 2021


Author: Florian Hahn
Date: 2021-06-09T09:20:02+01:00
New Revision: 5c5ae6a661ce01fb4e5f3a645de188028e8c981e

URL: https://github.com/llvm/llvm-project/commit/5c5ae6a661ce01fb4e5f3a645de188028e8c981e
DIFF: https://github.com/llvm/llvm-project/commit/5c5ae6a661ce01fb4e5f3a645de188028e8c981e.diff

LOG: [ScalarEvolution] Add test for preserving add overflow flags.

Added: 
    

Modified: 
    llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll b/llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
index 403a0c96fdf67..7b09482a775f8 100644
--- a/llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
+++ b/llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
@@ -91,3 +91,31 @@ loop:                                             ; preds = %backedge, %entry
 exit:                                             ; preds = %loop
   ret i32 0
 }
+
+define void @pointer_iv_nowrap(i8* %startptr, i8* %endptr) local_unnamed_addr {
+; CHECK-LABEL: Classifying expressions for: @pointer_iv_nowrap
+; CHECK-NEXT:  %init = getelementptr inbounds i8, i8* %startptr, i64 2000
+; CHECK-NEXT:  -->  (2000 + %startptr)<nuw> U: [2000,0) S: [2000,0)
+; CHECK-NEXT:  %iv = phi i8* [ %init, %entry ], [ %iv.next, %loop ]
+; CHECK-NEXT:  -->  {(2000 + %startptr)<nuw>,+,1}<nuw><%loop> U: [2000,0) S: [2000,0)
+; CHECK-NEXT:  %iv.next = getelementptr inbounds i8, i8* %iv, i64 1
+; CHECK-NEXT:  -->  {(2001 + %startptr),+,1}<nuw><%loop> U: full-set S: full-set
+
+; CHECK-NEXT:Determining loop execution counts for: @pointer_iv_nowrap
+; CHECK-NEXT:Loop %loop: Unpredictable backedge-taken count.
+; CHECK-NEXT:Loop %loop: Unpredictable max backedge-taken count.
+; CHECK-NEXT:Loop %loop: Unpredictable predicated backedge-taken count.
+;
+entry:
+  %init = getelementptr inbounds i8, i8* %startptr, i64 2000
+  br label %loop
+
+loop:
+  %iv = phi i8* [ %init, %entry ], [ %iv.next, %loop ]
+  %iv.next = getelementptr inbounds i8, i8* %iv, i64 1
+  %ec = icmp ugt i8* %iv.next, %endptr
+  br i1 %ec, label %end, label %loop
+
+end:
+  ret void
+}


        


More information about the llvm-commits mailing list