Skip to content

Commit 83e61d0

Browse files
committed
[SeparateConstOffsetFromGEP] Add tests for multiple indices (NFC)
1 parent b4d1a60 commit 83e61d0

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/reorder-gep.ll

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,3 +284,29 @@ entry:
284284
%idx3 = getelementptr i8, ptr addrspace(3) %const3, i64 %in.idx2
285285
ret void
286286
}
287+
288+
define void @multiple_index_maybe_neg(ptr %in.ptr, i64 %in.idx1) {
289+
; CHECK-LABEL: define void @multiple_index_maybe_neg(
290+
; CHECK-SAME: ptr [[IN_PTR:%.*]], i64 [[IN_IDX1:%.*]]) #[[ATTR0]] {
291+
; CHECK-NEXT: [[CONST1:%.*]] = getelementptr inbounds [2 x <2 x i8>], ptr [[IN_PTR]], i64 0, i64 1
292+
; CHECK-NEXT: [[IDX1:%.*]] = getelementptr inbounds [2 x <2 x i8>], ptr [[CONST1]], i64 0, i64 [[IN_IDX1]]
293+
; CHECK-NEXT: ret void
294+
;
295+
%const1 = getelementptr inbounds [2 x <2 x i8>], ptr %in.ptr, i64 0, i64 1
296+
%idx1 = getelementptr inbounds [2 x <2 x i8>], ptr %const1, i64 0, i64 %in.idx1
297+
ret void
298+
}
299+
300+
define void @multiple_index_nonneg(ptr %in.ptr, i64 %in.idx1) {
301+
; CHECK-LABEL: define void @multiple_index_nonneg(
302+
; CHECK-SAME: ptr [[IN_PTR:%.*]], i64 [[IN_IDX1:%.*]]) #[[ATTR0]] {
303+
; CHECK-NEXT: [[IN_IDX1_NNEG:%.*]] = and i64 [[IN_IDX1]], 9223372036854775807
304+
; CHECK-NEXT: [[CONST1:%.*]] = getelementptr inbounds [2 x <2 x i8>], ptr [[IN_PTR]], i64 0, i64 1
305+
; CHECK-NEXT: [[IDX1:%.*]] = getelementptr inbounds [2 x <2 x i8>], ptr [[CONST1]], i64 0, i64 [[IN_IDX1_NNEG]]
306+
; CHECK-NEXT: ret void
307+
;
308+
%in.idx1.nneg = and i64 %in.idx1, 9223372036854775807
309+
%const1 = getelementptr inbounds [2 x <2 x i8>], ptr %in.ptr, i64 0, i64 1
310+
%idx1 = getelementptr inbounds [2 x <2 x i8>], ptr %const1, i64 0, i64 %in.idx1.nneg
311+
ret void
312+
}

0 commit comments

Comments
 (0)