@@ -107,7 +107,7 @@ int main() {
107
107
// CHECK1-NEXT: [[DEFAULT_DEV:%.*]] = call i32 @omp_get_default_device()
108
108
// CHECK1-NEXT: [[TEAM_PROCS:%.*]] = call i32 @ompx_get_team_procs(i32 [[DEFAULT_DEV]])
109
109
// CHECK1-NEXT: [[TMP0:%.*]] = zext i32 [[TEAM_PROCS]] to i64
110
- // CHECK1-NEXT: [[TMP1:%.*]] = mul i64 2 , [[TMP0]]
110
+ // CHECK1-NEXT: [[TMP1:%.*]] = mul i64 4 , [[TMP0]]
111
111
// CHECK1-NEXT: [[INITIAL_DEVID:%.*]] = call i32 @omp_get_initial_device()
112
112
// CHECK1-NEXT: [[D_TEAM_VALS_SZ:%.*]] = mul i64 4, [[TMP1]]
113
113
// CHECK1-NEXT: [[D_TEAM_VALS1:%.*]] = call ptr @omp_target_alloc(i64 [[D_TEAM_VALS_SZ]], i32 [[DEFAULT_DEV]])
@@ -182,7 +182,7 @@ int main() {
182
182
// CHECK1-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 8
183
183
// CHECK1-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 8
184
184
// CHECK1-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 8
185
- // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8
185
+ // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8, !nonnull [[META7:![0-9]+]], !align [[META8:![0-9]+]]
186
186
// CHECK1-NEXT: [[D_TEAM_VALS:%.*]] = alloca i32, align 4
187
187
// CHECK1-NEXT: store ptr null, ptr [[D_TEAM_VALS]], align 4
188
188
// CHECK1-NEXT: [[D_TEAMS_DONE_PTR:%.*]] = alloca i32, align 4
@@ -213,7 +213,7 @@ int main() {
213
213
// CHECK1-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 8
214
214
// CHECK1-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 8
215
215
// CHECK1-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 8
216
- // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8
216
+ // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8, !nonnull [[META7]], !align [[META8]]
217
217
// CHECK1-NEXT: store i32 0, ptr [[SIVAR2]], align 4
218
218
// CHECK1-NEXT: store i32 0, ptr [[DOTOMP_COMB_LB]], align 4
219
219
// CHECK1-NEXT: store i32 1, ptr [[DOTOMP_COMB_UB]], align 4
@@ -310,7 +310,7 @@ int main() {
310
310
// CHECK1-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 8
311
311
// CHECK1-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 8
312
312
// CHECK1-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 8
313
- // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8
313
+ // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8, !nonnull [[META7]], !align [[META8]]
314
314
// CHECK1-NEXT: store i32 0, ptr [[DOTOMP_LB]], align 4
315
315
// CHECK1-NEXT: store i32 1, ptr [[DOTOMP_UB]], align 4
316
316
// CHECK1-NEXT: [[TMP3:%.*]] = load i64, ptr [[DOTPREVIOUS_LB__ADDR]], align 8
@@ -446,7 +446,7 @@ int main() {
446
446
// CHECK1-NEXT: [[DEFAULT_DEV:%.*]] = call i32 @omp_get_default_device()
447
447
// CHECK1-NEXT: [[TEAM_PROCS:%.*]] = call i32 @ompx_get_team_procs(i32 [[DEFAULT_DEV]])
448
448
// CHECK1-NEXT: [[TMP0:%.*]] = zext i32 [[TEAM_PROCS]] to i64
449
- // CHECK1-NEXT: [[TMP1:%.*]] = mul i64 2 , [[TMP0]]
449
+ // CHECK1-NEXT: [[TMP1:%.*]] = mul i64 4 , [[TMP0]]
450
450
// CHECK1-NEXT: [[INITIAL_DEVID:%.*]] = call i32 @omp_get_initial_device()
451
451
// CHECK1-NEXT: [[D_TEAM_VALS_SZ:%.*]] = mul i64 4, [[TMP1]]
452
452
// CHECK1-NEXT: [[D_TEAM_VALS1:%.*]] = call ptr @omp_target_alloc(i64 [[D_TEAM_VALS_SZ]], i32 [[DEFAULT_DEV]])
@@ -520,7 +520,7 @@ int main() {
520
520
// CHECK1-NEXT: store ptr [[T_VAR]], ptr [[T_VAR_ADDR]], align 8
521
521
// CHECK1-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 8
522
522
// CHECK1-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 8
523
- // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 8
523
+ // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 8, !nonnull [[META7]], !align [[META8]]
524
524
// CHECK1-NEXT: [[D_TEAM_VALS:%.*]] = alloca i32, align 4
525
525
// CHECK1-NEXT: store ptr null, ptr [[D_TEAM_VALS]], align 4
526
526
// CHECK1-NEXT: [[D_TEAMS_DONE_PTR:%.*]] = alloca i32, align 4
@@ -551,7 +551,7 @@ int main() {
551
551
// CHECK1-NEXT: store ptr [[T_VAR]], ptr [[T_VAR_ADDR]], align 8
552
552
// CHECK1-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 8
553
553
// CHECK1-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 8
554
- // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 8
554
+ // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 8, !nonnull [[META7]], !align [[META8]]
555
555
// CHECK1-NEXT: store i32 0, ptr [[T_VAR2]], align 4
556
556
// CHECK1-NEXT: store i32 0, ptr [[DOTOMP_COMB_LB]], align 4
557
557
// CHECK1-NEXT: store i32 1, ptr [[DOTOMP_COMB_UB]], align 4
@@ -648,7 +648,7 @@ int main() {
648
648
// CHECK1-NEXT: store ptr [[T_VAR]], ptr [[T_VAR_ADDR]], align 8
649
649
// CHECK1-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 8
650
650
// CHECK1-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 8
651
- // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 8
651
+ // CHECK1-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 8, !nonnull [[META7]], !align [[META8]]
652
652
// CHECK1-NEXT: store i32 0, ptr [[DOTOMP_LB]], align 4
653
653
// CHECK1-NEXT: store i32 1, ptr [[DOTOMP_UB]], align 4
654
654
// CHECK1-NEXT: [[TMP3:%.*]] = load i64, ptr [[DOTPREVIOUS_LB__ADDR]], align 8
@@ -782,7 +782,7 @@ int main() {
782
782
// CHECK3-NEXT: [[DEFAULT_DEV:%.*]] = call i32 @omp_get_default_device()
783
783
// CHECK3-NEXT: [[TEAM_PROCS:%.*]] = call i32 @ompx_get_team_procs(i32 [[DEFAULT_DEV]])
784
784
// CHECK3-NEXT: [[TMP0:%.*]] = zext i32 [[TEAM_PROCS]] to i64
785
- // CHECK3-NEXT: [[TMP1:%.*]] = mul i64 2 , [[TMP0]]
785
+ // CHECK3-NEXT: [[TMP1:%.*]] = mul i64 4 , [[TMP0]]
786
786
// CHECK3-NEXT: [[INITIAL_DEVID:%.*]] = call i32 @omp_get_initial_device()
787
787
// CHECK3-NEXT: [[D_TEAM_VALS_SZ:%.*]] = mul i64 4, [[TMP1]]
788
788
// CHECK3-NEXT: [[D_TEAM_VALS1:%.*]] = call ptr @omp_target_alloc(i64 [[D_TEAM_VALS_SZ]], i32 [[DEFAULT_DEV]])
@@ -857,7 +857,7 @@ int main() {
857
857
// CHECK3-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 4
858
858
// CHECK3-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 4
859
859
// CHECK3-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 4
860
- // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 4
860
+ // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 4, !nonnull [[META8:![0-9]+]], !align [[META9:![0-9]+]]
861
861
// CHECK3-NEXT: [[D_TEAM_VALS:%.*]] = alloca i32, align 4
862
862
// CHECK3-NEXT: store ptr null, ptr [[D_TEAM_VALS]], align 4
863
863
// CHECK3-NEXT: [[D_TEAMS_DONE_PTR:%.*]] = alloca i32, align 4
@@ -888,7 +888,7 @@ int main() {
888
888
// CHECK3-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 4
889
889
// CHECK3-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 4
890
890
// CHECK3-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 4
891
- // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 4
891
+ // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 4, !nonnull [[META8]], !align [[META9]]
892
892
// CHECK3-NEXT: store i32 0, ptr [[SIVAR2]], align 4
893
893
// CHECK3-NEXT: store i32 0, ptr [[DOTOMP_COMB_LB]], align 4
894
894
// CHECK3-NEXT: store i32 1, ptr [[DOTOMP_COMB_UB]], align 4
@@ -983,7 +983,7 @@ int main() {
983
983
// CHECK3-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 4
984
984
// CHECK3-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 4
985
985
// CHECK3-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 4
986
- // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 4
986
+ // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 4, !nonnull [[META8]], !align [[META9]]
987
987
// CHECK3-NEXT: store i32 0, ptr [[DOTOMP_LB]], align 4
988
988
// CHECK3-NEXT: store i32 1, ptr [[DOTOMP_UB]], align 4
989
989
// CHECK3-NEXT: [[TMP3:%.*]] = load i32, ptr [[DOTPREVIOUS_LB__ADDR]], align 4
@@ -1117,7 +1117,7 @@ int main() {
1117
1117
// CHECK3-NEXT: [[DEFAULT_DEV:%.*]] = call i32 @omp_get_default_device()
1118
1118
// CHECK3-NEXT: [[TEAM_PROCS:%.*]] = call i32 @ompx_get_team_procs(i32 [[DEFAULT_DEV]])
1119
1119
// CHECK3-NEXT: [[TMP0:%.*]] = zext i32 [[TEAM_PROCS]] to i64
1120
- // CHECK3-NEXT: [[TMP1:%.*]] = mul i64 2 , [[TMP0]]
1120
+ // CHECK3-NEXT: [[TMP1:%.*]] = mul i64 4 , [[TMP0]]
1121
1121
// CHECK3-NEXT: [[INITIAL_DEVID:%.*]] = call i32 @omp_get_initial_device()
1122
1122
// CHECK3-NEXT: [[D_TEAM_VALS_SZ:%.*]] = mul i64 4, [[TMP1]]
1123
1123
// CHECK3-NEXT: [[D_TEAM_VALS1:%.*]] = call ptr @omp_target_alloc(i64 [[D_TEAM_VALS_SZ]], i32 [[DEFAULT_DEV]])
@@ -1191,7 +1191,7 @@ int main() {
1191
1191
// CHECK3-NEXT: store ptr [[T_VAR]], ptr [[T_VAR_ADDR]], align 4
1192
1192
// CHECK3-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 4
1193
1193
// CHECK3-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 4
1194
- // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 4
1194
+ // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 4, !nonnull [[META8]], !align [[META9]]
1195
1195
// CHECK3-NEXT: [[D_TEAM_VALS:%.*]] = alloca i32, align 4
1196
1196
// CHECK3-NEXT: store ptr null, ptr [[D_TEAM_VALS]], align 4
1197
1197
// CHECK3-NEXT: [[D_TEAMS_DONE_PTR:%.*]] = alloca i32, align 4
@@ -1222,7 +1222,7 @@ int main() {
1222
1222
// CHECK3-NEXT: store ptr [[T_VAR]], ptr [[T_VAR_ADDR]], align 4
1223
1223
// CHECK3-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 4
1224
1224
// CHECK3-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 4
1225
- // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 4
1225
+ // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 4, !nonnull [[META8]], !align [[META9]]
1226
1226
// CHECK3-NEXT: store i32 0, ptr [[T_VAR2]], align 4
1227
1227
// CHECK3-NEXT: store i32 0, ptr [[DOTOMP_COMB_LB]], align 4
1228
1228
// CHECK3-NEXT: store i32 1, ptr [[DOTOMP_COMB_UB]], align 4
@@ -1317,7 +1317,7 @@ int main() {
1317
1317
// CHECK3-NEXT: store ptr [[T_VAR]], ptr [[T_VAR_ADDR]], align 4
1318
1318
// CHECK3-NEXT: store ptr [[TMP0]], ptr [[DOTADDR]], align 4
1319
1319
// CHECK3-NEXT: store ptr [[TMP1]], ptr [[DOTADDR1]], align 4
1320
- // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 4
1320
+ // CHECK3-NEXT: [[TMP2:%.*]] = load ptr, ptr [[T_VAR_ADDR]], align 4, !nonnull [[META8]], !align [[META9]]
1321
1321
// CHECK3-NEXT: store i32 0, ptr [[DOTOMP_LB]], align 4
1322
1322
// CHECK3-NEXT: store i32 1, ptr [[DOTOMP_UB]], align 4
1323
1323
// CHECK3-NEXT: [[TMP3:%.*]] = load i32, ptr [[DOTPREVIOUS_LB__ADDR]], align 4
@@ -1447,7 +1447,7 @@ int main() {
1447
1447
// CHECK5-NEXT: entry:
1448
1448
// CHECK5-NEXT: [[SIVAR_ADDR:%.*]] = alloca ptr, align 8
1449
1449
// CHECK5-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 8
1450
- // CHECK5-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8
1450
+ // CHECK5-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8, !nonnull [[META5:![0-9]+]], !align [[META6:![0-9]+]]
1451
1451
// CHECK5-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_teams(ptr @[[GLOB4:[0-9]+]], i32 1, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}_main_l44.omp_outlined, ptr [[TMP0]])
1452
1452
// CHECK5-NEXT: ret void
1453
1453
//
@@ -1470,7 +1470,7 @@ int main() {
1470
1470
// CHECK5-NEXT: store ptr [[DOTGLOBAL_TID_]], ptr [[DOTGLOBAL_TID__ADDR]], align 8
1471
1471
// CHECK5-NEXT: store ptr [[DOTBOUND_TID_]], ptr [[DOTBOUND_TID__ADDR]], align 8
1472
1472
// CHECK5-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 8
1473
- // CHECK5-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8
1473
+ // CHECK5-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8, !nonnull [[META5]], !align [[META6]]
1474
1474
// CHECK5-NEXT: store i32 0, ptr [[SIVAR1]], align 4
1475
1475
// CHECK5-NEXT: store i32 0, ptr [[DOTOMP_COMB_LB]], align 4
1476
1476
// CHECK5-NEXT: store i32 1, ptr [[DOTOMP_COMB_UB]], align 4
@@ -1560,7 +1560,7 @@ int main() {
1560
1560
// CHECK5-NEXT: store i64 [[DOTPREVIOUS_LB_]], ptr [[DOTPREVIOUS_LB__ADDR]], align 8
1561
1561
// CHECK5-NEXT: store i64 [[DOTPREVIOUS_UB_]], ptr [[DOTPREVIOUS_UB__ADDR]], align 8
1562
1562
// CHECK5-NEXT: store ptr [[SIVAR]], ptr [[SIVAR_ADDR]], align 8
1563
- // CHECK5-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8
1563
+ // CHECK5-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SIVAR_ADDR]], align 8, !nonnull [[META5]], !align [[META6]]
1564
1564
// CHECK5-NEXT: store i32 0, ptr [[DOTOMP_LB]], align 4
1565
1565
// CHECK5-NEXT: store i32 1, ptr [[DOTOMP_UB]], align 4
1566
1566
// CHECK5-NEXT: [[TMP1:%.*]] = load i64, ptr [[DOTPREVIOUS_LB__ADDR]], align 8
0 commit comments