diff options
author | czhengsz <czhengsz@cn.ibm.com> | 2019-12-22 20:58:19 -0500 |
---|---|---|
committer | czhengsz <czhengsz@cn.ibm.com> | 2019-12-22 20:58:19 -0500 |
commit | 7259f04dde82502f133117c5a80eebd92a5fe092 (patch) | |
tree | ddf1929e7e7423eaddf621efd1a58b03941ea43f | |
parent | 2539cd22e96ef53da204c9bb28b8a38a582c1309 (diff) | |
download | bcm5719-llvm-7259f04dde82502f133117c5a80eebd92a5fe092.tar.gz bcm5719-llvm-7259f04dde82502f133117c5a80eebd92a5fe092.zip |
[SCEV] add testcase for get accurate range for addrecexpr with nuw flag
-rw-r--r-- | llvm/test/Analysis/ScalarEvolution/range_nw_flag.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/Analysis/ScalarEvolution/range_nw_flag.ll b/llvm/test/Analysis/ScalarEvolution/range_nw_flag.ll index c5640bf6dda..65ecd312e0c 100644 --- a/llvm/test/Analysis/ScalarEvolution/range_nw_flag.ll +++ b/llvm/test/Analysis/ScalarEvolution/range_nw_flag.ll @@ -19,3 +19,23 @@ exit: ret void } +; CHECK-LABEL: @test-addrec-nuw +; CHECK: --> {(1 + (10 smax %offset))<nuw>,+,1}<nuw><%loop> U: full-set S: full-set +define void @test-addrec-nuw(float* %input, i32 %offset, i32 %numIterations) { +entry: + %cmp = icmp sgt i32 %offset, 10 + %min.10 = select i1 %cmp, i32 %offset, i32 10 + br label %loop +loop: + %i = phi i32 [ %nexti, %loop ], [ 0, %entry ] + %nexti = add nuw i32 %i, 1 + %index32 = add nuw i32 %nexti, %min.10 + %ptr = getelementptr inbounds float, float* %input, i32 %index32 + %f = load float, float* %ptr, align 4 + %exitcond = icmp eq i32 %nexti, %numIterations + br i1 %exitcond, label %exit, label %loop + +exit: + ret void +} + |