@@ -1307,4 +1307,78 @@ define ptr @gep_of_gep_multiuse_var_and_var(ptr %p, i64 %idx, i64 %idx2) {
1307
1307
ret ptr %gep2
1308
1308
}
1309
1309
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
+
1310
1384
!0 = !{!"branch_weights" , i32 2 , i32 10 }
0 commit comments