Skip to content

Commit c9a3b69

Browse files
committed
[InstCombine] Add additional constexpr gep inbounds tests (NFC)
1 parent 627400b commit c9a3b69

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

llvm/test/Transforms/InstCombine/getelementptr.ll

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1307,4 +1307,78 @@ define ptr @gep_of_gep_multiuse_var_and_var(ptr %p, i64 %idx, i64 %idx2) {
13071307
ret ptr %gep2
13081308
}
13091309

1310+
@g_i32_di = global i32 0
1311+
@g_i32_e = external global i32
1312+
@g_i32_ew = extern_weak global i32
1313+
1314+
define ptr @const_gep_global_di_i8_smaller() {
1315+
; CHECK-LABEL: @const_gep_global_di_i8_smaller(
1316+
; CHECK-NEXT: ret ptr getelementptr (i8, ptr @g_i32_di, i64 3)
1317+
;
1318+
ret ptr getelementptr (i8, ptr @g_i32_di, i64 3)
1319+
}
1320+
1321+
define ptr @const_gep_global_di_i8_exact() {
1322+
; CHECK-LABEL: @const_gep_global_di_i8_exact(
1323+
; CHECK-NEXT: ret ptr getelementptr inbounds (i32, ptr @g_i32_di, i64 1)
1324+
;
1325+
ret ptr getelementptr (i8, ptr @g_i32_di, i64 4)
1326+
}
1327+
1328+
define ptr @const_gep_global_di_i8_larger() {
1329+
; CHECK-LABEL: @const_gep_global_di_i8_larger(
1330+
; CHECK-NEXT: ret ptr getelementptr (i8, ptr @g_i32_di, i64 5)
1331+
;
1332+
ret ptr getelementptr (i8, ptr @g_i32_di, i64 5)
1333+
}
1334+
1335+
define ptr @const_gep_global_di_i64_larger() {
1336+
; CHECK-LABEL: @const_gep_global_di_i64_larger(
1337+
; CHECK-NEXT: ret ptr getelementptr inbounds (i32, ptr @g_i32_di, i64 2)
1338+
;
1339+
ret ptr getelementptr (i64, ptr @g_i32_di, i64 1)
1340+
}
1341+
1342+
define ptr @const_gep_global_e_smaller() {
1343+
; CHECK-LABEL: @const_gep_global_e_smaller(
1344+
; CHECK-NEXT: ret ptr getelementptr (i8, ptr @g_i32_e, i64 3)
1345+
;
1346+
ret ptr getelementptr (i8, ptr @g_i32_e, i64 3)
1347+
}
1348+
1349+
define ptr @const_gep_global_e_exact() {
1350+
; CHECK-LABEL: @const_gep_global_e_exact(
1351+
; CHECK-NEXT: ret ptr getelementptr inbounds (i32, ptr @g_i32_e, i64 1)
1352+
;
1353+
ret ptr getelementptr (i8, ptr @g_i32_e, i64 4)
1354+
}
1355+
1356+
define ptr @const_gep_global_e_larger() {
1357+
; CHECK-LABEL: @const_gep_global_e_larger(
1358+
; CHECK-NEXT: ret ptr getelementptr (i8, ptr @g_i32_e, i64 5)
1359+
;
1360+
ret ptr getelementptr (i8, ptr @g_i32_e, i64 5)
1361+
}
1362+
1363+
define ptr @const_gep_global_ew_smaller() {
1364+
; CHECK-LABEL: @const_gep_global_ew_smaller(
1365+
; CHECK-NEXT: ret ptr getelementptr (i8, ptr @g_i32_ew, i64 3)
1366+
;
1367+
ret ptr getelementptr (i8, ptr @g_i32_ew, i64 3)
1368+
}
1369+
1370+
define ptr @const_gep_global_ew_exact() {
1371+
; CHECK-LABEL: @const_gep_global_ew_exact(
1372+
; CHECK-NEXT: ret ptr getelementptr (i32, ptr @g_i32_ew, i64 1)
1373+
;
1374+
ret ptr getelementptr (i8, ptr @g_i32_ew, i64 4)
1375+
}
1376+
1377+
define ptr @const_gep_global_ew_larger() {
1378+
; CHECK-LABEL: @const_gep_global_ew_larger(
1379+
; CHECK-NEXT: ret ptr getelementptr (i8, ptr @g_i32_ew, i64 5)
1380+
;
1381+
ret ptr getelementptr (i8, ptr @g_i32_ew, i64 5)
1382+
}
1383+
13101384
!0 = !{!"branch_weights", i32 2, i32 10}

0 commit comments

Comments
 (0)