[llvm] c9a3b69 - [InstCombine] Add additional constexpr gep inbounds tests (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 31 02:18:39 PST 2023


Author: Nikita Popov
Date: 2023-01-31T11:18:31+01:00
New Revision: c9a3b69e67ddaca2876c4571a823ac21ddc0ae94

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

LOG: [InstCombine] Add additional constexpr gep inbounds tests (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/getelementptr.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/getelementptr.ll b/llvm/test/Transforms/InstCombine/getelementptr.ll
index 8366decfcbbe3..e67f67c24d266 100644
--- a/llvm/test/Transforms/InstCombine/getelementptr.ll
+++ b/llvm/test/Transforms/InstCombine/getelementptr.ll
@@ -1307,4 +1307,78 @@ define ptr @gep_of_gep_multiuse_var_and_var(ptr %p, i64 %idx, i64 %idx2) {
   ret ptr %gep2
 }
 
+ at g_i32_di = global i32 0
+ at g_i32_e = external global i32
+ at g_i32_ew = extern_weak global i32
+
+define ptr @const_gep_global_di_i8_smaller() {
+; CHECK-LABEL: @const_gep_global_di_i8_smaller(
+; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g_i32_di, i64 3)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_di, i64 3)
+}
+
+define ptr @const_gep_global_di_i8_exact() {
+; CHECK-LABEL: @const_gep_global_di_i8_exact(
+; CHECK-NEXT:    ret ptr getelementptr inbounds (i32, ptr @g_i32_di, i64 1)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_di, i64 4)
+}
+
+define ptr @const_gep_global_di_i8_larger() {
+; CHECK-LABEL: @const_gep_global_di_i8_larger(
+; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g_i32_di, i64 5)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_di, i64 5)
+}
+
+define ptr @const_gep_global_di_i64_larger() {
+; CHECK-LABEL: @const_gep_global_di_i64_larger(
+; CHECK-NEXT:    ret ptr getelementptr inbounds (i32, ptr @g_i32_di, i64 2)
+;
+  ret ptr getelementptr (i64, ptr @g_i32_di, i64 1)
+}
+
+define ptr @const_gep_global_e_smaller() {
+; CHECK-LABEL: @const_gep_global_e_smaller(
+; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g_i32_e, i64 3)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_e, i64 3)
+}
+
+define ptr @const_gep_global_e_exact() {
+; CHECK-LABEL: @const_gep_global_e_exact(
+; CHECK-NEXT:    ret ptr getelementptr inbounds (i32, ptr @g_i32_e, i64 1)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_e, i64 4)
+}
+
+define ptr @const_gep_global_e_larger() {
+; CHECK-LABEL: @const_gep_global_e_larger(
+; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g_i32_e, i64 5)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_e, i64 5)
+}
+
+define ptr @const_gep_global_ew_smaller() {
+; CHECK-LABEL: @const_gep_global_ew_smaller(
+; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g_i32_ew, i64 3)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_ew, i64 3)
+}
+
+define ptr @const_gep_global_ew_exact() {
+; CHECK-LABEL: @const_gep_global_ew_exact(
+; CHECK-NEXT:    ret ptr getelementptr (i32, ptr @g_i32_ew, i64 1)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_ew, i64 4)
+}
+
+define ptr @const_gep_global_ew_larger() {
+; CHECK-LABEL: @const_gep_global_ew_larger(
+; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g_i32_ew, i64 5)
+;
+  ret ptr getelementptr (i8, ptr @g_i32_ew, i64 5)
+}
+
 !0 = !{!"branch_weights", i32 2, i32 10}


        


More information about the llvm-commits mailing list