[llvm] 257b39f - [InstCombine] Add extra use tests for GEP of GEP fold (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 26 08:37:01 PDT 2022
Author: Nikita Popov
Date: 2022-04-26T17:36:54+02:00
New Revision: 257b39fbc726167768aded422168c1253456fbea
URL: https://github.com/llvm/llvm-project/commit/257b39fbc726167768aded422168c1253456fbea
DIFF: https://github.com/llvm/llvm-project/commit/257b39fbc726167768aded422168c1253456fbea.diff
LOG: [InstCombine] Add extra use tests for GEP of GEP fold (NFC)
Added:
Modified:
llvm/test/Transforms/InstCombine/opaque-ptr.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/opaque-ptr.ll b/llvm/test/Transforms/InstCombine/opaque-ptr.ll
index e130f81ddfdd2..92d7d70bf81d6 100644
--- a/llvm/test/Transforms/InstCombine/opaque-ptr.ll
+++ b/llvm/test/Transforms/InstCombine/opaque-ptr.ll
@@ -278,6 +278,34 @@ define ptr @geps_combinable_
diff erent_elem_type9(ptr %a, i64 %idx) {
ret ptr %a3
}
+declare void @use(ptr)
+
+define ptr @geps_combinable_
diff erent_elem_type_extra_use1(ptr %a) {
+; CHECK-LABEL: @geps_combinable_
diff erent_elem_type_extra_use1(
+; CHECK-NEXT: [[A2:%.*]] = getelementptr { i32, i32 }, ptr [[A:%.*]], i64 0, i32 1
+; CHECK-NEXT: call void @use(ptr [[A2]])
+; CHECK-NEXT: [[A3:%.*]] = getelementptr i8, ptr [[A2]], i64 4
+; CHECK-NEXT: ret ptr [[A3]]
+;
+ %a2 = getelementptr { i32, i32 }, ptr %a, i32 0, i32 1
+ call void @use(ptr %a2)
+ %a3 = getelementptr i8, ptr %a2, i64 4
+ ret ptr %a3
+}
+
+define ptr @geps_combinable_
diff erent_elem_type_extra_use2(ptr %a, i64 %idx) {
+; CHECK-LABEL: @geps_combinable_
diff erent_elem_type_extra_use2(
+; CHECK-NEXT: [[A2:%.*]] = getelementptr { i32, i32 }, ptr [[A:%.*]], i64 [[IDX:%.*]]
+; CHECK-NEXT: call void @use(ptr [[A2]])
+; CHECK-NEXT: [[A3:%.*]] = getelementptr i8, ptr [[A2]], i64 4
+; CHECK-NEXT: ret ptr [[A3]]
+;
+ %a2 = getelementptr { i32, i32 }, ptr %a, i64 %idx
+ call void @use(ptr %a2)
+ %a3 = getelementptr i8, ptr %a2, i64 4
+ ret ptr %a3
+}
+
define ptr @geps_combinable_scalable(ptr %a, i64 %idx) {
; CHECK-LABEL: @geps_combinable_scalable(
; CHECK-NEXT: [[A2:%.*]] = getelementptr inbounds <vscale x 2 x i32>, ptr [[A:%.*]], i64 1
More information about the llvm-commits
mailing list