From: Florian Hahn Date: Wed, 9 Jun 2021 08:01:33 +0000 (+0100) Subject: [ScalarEvolution] Add test for preserving add overflow flags. X-Git-Tag: llvmorg-14-init~4474 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5c5ae6a661ce01fb4e5f3a645de188028e8c981e;p=platform%2Fupstream%2Fllvm.git [ScalarEvolution] Add test for preserving add overflow flags. --- diff --git a/llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll b/llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll index 403a0c9..7b09482 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) U: [2000,0) S: [2000,0) +; CHECK-NEXT: %iv = phi i8* [ %init, %entry ], [ %iv.next, %loop ] +; CHECK-NEXT: --> {(2000 + %startptr),+,1}<%loop> U: [2000,0) S: [2000,0) +; CHECK-NEXT: %iv.next = getelementptr inbounds i8, i8* %iv, i64 1 +; CHECK-NEXT: --> {(2001 + %startptr),+,1}<%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 +}