[llvm] 36b22f7 - [BasicAA] Add range test with nsw (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 29 09:07:15 PDT 2021


Author: Nikita Popov
Date: 2021-10-29T18:00:25+02:00
New Revision: 36b22f7845a0e50dbb09ced8cc9ea9b1148369fb

URL: https://github.com/llvm/llvm-project/commit/36b22f7845a0e50dbb09ced8cc9ea9b1148369fb
DIFF: https://github.com/llvm/llvm-project/commit/36b22f7845a0e50dbb09ced8cc9ea9b1148369fb.diff

LOG: [BasicAA] Add range test with nsw (NFC)

Added: 
    

Modified: 
    llvm/test/Analysis/BasicAA/assume-index-positive.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/BasicAA/assume-index-positive.ll b/llvm/test/Analysis/BasicAA/assume-index-positive.ll
index a53fff2c6009e..b7ae7060bab40 100644
--- a/llvm/test/Analysis/BasicAA/assume-index-positive.ll
+++ b/llvm/test/Analysis/BasicAA/assume-index-positive.ll
@@ -145,5 +145,20 @@ define void @shl_of_non_negative(i8* %ptr, i64 %a) {
   ret void
 }
 
+; TODO: Unlike the previous case, %ptr.neg and %ptr.shl can't alias, because
+; shl nsw of non-negative is non-negative.
+define void @shl_nsw_of_non_negative(i8* %ptr, i64 %a) {
+; CHECK-LABEL: Function: shl_nsw_of_non_negative
+; CHECK: NoAlias: i8* %ptr.a, i8* %ptr.neg
+; CHECK: MayAlias: i8* %ptr.neg, i8* %ptr.shl
+  %a.cmp = icmp sge i64 %a, 0
+  call void @llvm.assume(i1 %a.cmp)
+  %ptr.neg = getelementptr i8, i8* %ptr, i64 -2
+  %ptr.a = getelementptr i8, i8* %ptr, i64 %a
+  %shl = shl nsw i64 %a, 1
+  %ptr.shl = getelementptr i8, i8* %ptr, i64 %shl
+  ret void
+}
+
 declare void @llvm.assume(i1 %cond)
 declare void @barrier()


        


More information about the llvm-commits mailing list