[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