Skip to content

Commit b0ce2b7

Browse files
committed
[BasicAA] Add tests for non-zero var index (NFC)
1 parent 320af6b commit b0ce2b7

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

llvm/test/Analysis/BasicAA/sequential-gep.ll

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,31 @@ define void @add_non_zero_with_offset(i32* %p, i32 %addend, i32* %q) {
110110
ret void
111111
}
112112

113+
; CHECK-LABEL: non_zero_index_simple
114+
; CHECK: MayAlias: i32* %gep, i32* %p
115+
; CHECK: MayAlias: i16* %gep.16, i32* %p
116+
; CHECK: MayAlias: i32* %p, i64* %gep.64
117+
; TODO: First two could be NoAlias.
118+
define void @non_zero_index_simple(i32* %p, i32* %q) {
119+
%knownnonzero = load i32, i32* %q, !range !0
120+
%gep = getelementptr i32, i32* %p, i32 %knownnonzero
121+
%gep.16 = bitcast i32* %gep to i16*
122+
%gep.64 = bitcast i32* %gep to i64*
123+
ret void
124+
}
125+
126+
; CHECK-LABEL: non_zero_index_with_offset
127+
; CHECK: MayAlias: i32* %gep, i32* %p
128+
; CHECK: MayAlias: i16* %gep.16, i32* %p
129+
; TODO: Last could be NoAlias.
130+
define void @non_zero_index_with_offset(i32* %p, i32* %q) {
131+
%knownnonzero = load i32, i32* %q, !range !0
132+
%p.8 = bitcast i32* %p to i8*
133+
%p.off.8 = getelementptr i8, i8* %p.8, i32 2
134+
%p.off = bitcast i8* %p.off.8 to i32*
135+
%gep = getelementptr i32, i32* %p.off, i32 %knownnonzero
136+
%gep.16 = bitcast i32* %gep to i16*
137+
ret void
138+
}
139+
113140
!0 = !{ i32 1, i32 5 }

0 commit comments

Comments
 (0)