@@ -113,7 +113,7 @@ int main() {
113113// CHECK-NEXT: [[I1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[I1]] to ptr
114114// CHECK-NEXT: store ptr [[DYN_PTR]], ptr [[DYN_PTR_ADDR_ASCAST]], align 8
115115// CHECK-NEXT: store ptr [[SUM]], ptr [[SUM_ADDR_ASCAST]], align 8
116- // CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SUM_ADDR_ASCAST]], align 8
116+ // CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[SUM_ADDR_ASCAST]], align 8, !nonnull [[META9:![0-9]+]], !align [[META10:![0-9]+]]
117117// CHECK-NEXT: [[TMP1:%.*]] = call i32 @__kmpc_target_init(ptr addrspacecast (ptr addrspace(1) @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo1v_l12_kernel_environment to ptr), ptr [[DYN_PTR]])
118118// CHECK-NEXT: [[EXEC_USER_CODE:%.*]] = icmp eq i32 [[TMP1]], -1
119119// CHECK-NEXT: br i1 [[EXEC_USER_CODE]], label [[USER_CODE_ENTRY:%.*]], label [[WORKER_EXIT:%.*]]
@@ -145,7 +145,7 @@ int main() {
145145// CHECK-NEXT: [[TMP12:%.*]] = load i32, ptr [[I_ASCAST]], align 4
146146// CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP12]], 1
147147// CHECK-NEXT: store i32 [[INC]], ptr [[I_ASCAST]], align 4
148- // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP13 :![0-9]+]]
148+ // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP11 :![0-9]+]]
149149// CHECK: worker.exit:
150150// CHECK-NEXT: ret void
151151// CHECK: for.end:
@@ -169,7 +169,7 @@ int main() {
169169// CHECK-NEXT: [[TMP18:%.*]] = load i32, ptr [[I1_ASCAST]], align 4
170170// CHECK-NEXT: [[INC8:%.*]] = add nsw i32 [[TMP18]], 1
171171// CHECK-NEXT: store i32 [[INC8]], ptr [[I1_ASCAST]], align 4
172- // CHECK-NEXT: br label [[FOR_COND2]], !llvm.loop [[LOOP15 :![0-9]+]]
172+ // CHECK-NEXT: br label [[FOR_COND2]], !llvm.loop [[LOOP13 :![0-9]+]]
173173// CHECK: for.end9:
174174// CHECK-NEXT: call void @__kmpc_free_shared(ptr [[A]], i64 [[TMP7]])
175175// CHECK-NEXT: call void @__kmpc_target_deinit()
@@ -214,7 +214,7 @@ int main() {
214214// CHECK-NEXT: store i64 [[VLA]], ptr [[VLA_ADDR_ASCAST]], align 8
215215// CHECK-NEXT: store ptr [[RESULT]], ptr [[RESULT_ADDR_ASCAST]], align 8
216216// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[VLA_ADDR_ASCAST]], align 8
217- // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8
217+ // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
218218// CHECK-NEXT: call void @__kmpc_specialized_kernel_init()
219219// CHECK-NEXT: store i32 0, ptr [[I_ASCAST]], align 4
220220// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[M_ADDR_ASCAST]], align 4
@@ -281,7 +281,7 @@ int main() {
281281// CHECK-NEXT: [[TMP24:%.*]] = load i32, ptr [[J_ASCAST]], align 4
282282// CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP24]], 1
283283// CHECK-NEXT: store i32 [[INC]], ptr [[J_ASCAST]], align 4
284- // CHECK-NEXT: br label [[FOR_COND4]], !llvm.loop [[LOOP16 :![0-9]+]]
284+ // CHECK-NEXT: br label [[FOR_COND4]], !llvm.loop [[LOOP14 :![0-9]+]]
285285// CHECK: for.end:
286286// CHECK-NEXT: store i32 0, ptr [[J9_ASCAST]], align 4
287287// CHECK-NEXT: br label [[FOR_COND10:%.*]]
@@ -306,7 +306,7 @@ int main() {
306306// CHECK-NEXT: [[TMP31:%.*]] = load i32, ptr [[J9_ASCAST]], align 4
307307// CHECK-NEXT: [[INC19:%.*]] = add nsw i32 [[TMP31]], 1
308308// CHECK-NEXT: store i32 [[INC19]], ptr [[J9_ASCAST]], align 4
309- // CHECK-NEXT: br label [[FOR_COND10]], !llvm.loop [[LOOP17 :![0-9]+]]
309+ // CHECK-NEXT: br label [[FOR_COND10]], !llvm.loop [[LOOP15 :![0-9]+]]
310310// CHECK: for.end20:
311311// CHECK-NEXT: [[TMP32:%.*]] = load ptr addrspace(5), ptr [[SAVED_STACK_ASCAST]], align 4
312312// CHECK-NEXT: call void @llvm.stackrestore.p5(ptr addrspace(5) [[TMP32]])
@@ -319,7 +319,7 @@ int main() {
319319// CHECK-NEXT: [[TMP36:%.*]] = load i32, ptr [[DOTOMP_IV_ASCAST]], align 4
320320// CHECK-NEXT: [[TMP37:%.*]] = add i32 [[TMP35]], [[TMP36]]
321321// CHECK-NEXT: store i32 [[TMP37]], ptr [[DOTOMP_IV_ASCAST]], align 4
322- // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP18 :![0-9]+]]
322+ // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP16 :![0-9]+]]
323323// CHECK: for.end23:
324324// CHECK-NEXT: ret void
325325//
@@ -346,7 +346,7 @@ int main() {
346346// CHECK-NEXT: store i64 [[VLA]], ptr [[VLA_ADDR_ASCAST]], align 8
347347// CHECK-NEXT: store ptr [[RESULT]], ptr [[RESULT_ADDR_ASCAST]], align 8
348348// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[VLA_ADDR_ASCAST]], align 8
349- // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8
349+ // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
350350// CHECK-NEXT: [[TMP2:%.*]] = call i32 @__kmpc_target_init(ptr addrspacecast (ptr addrspace(1) @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo3v_l52_kernel_environment to ptr), ptr [[DYN_PTR]])
351351// CHECK-NEXT: [[EXEC_USER_CODE:%.*]] = icmp eq i32 [[TMP2]], -1
352352// CHECK-NEXT: br i1 [[EXEC_USER_CODE]], label [[USER_CODE_ENTRY:%.*]], label [[WORKER_EXIT:%.*]]
@@ -409,7 +409,7 @@ int main() {
409409// CHECK-NEXT: store i64 [[VLA]], ptr [[VLA_ADDR_ASCAST]], align 8
410410// CHECK-NEXT: store ptr [[RESULT]], ptr [[RESULT_ADDR_ASCAST]], align 8
411411// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[VLA_ADDR_ASCAST]], align 8
412- // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8
412+ // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
413413// CHECK-NEXT: [[N:%.*]] = call align 8 ptr @__kmpc_alloc_shared(i64 4)
414414// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[M_ADDR_ASCAST]], align 4
415415// CHECK-NEXT: store i32 [[TMP2]], ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
@@ -480,7 +480,7 @@ int main() {
480480// CHECK-NEXT: store ptr [[A]], ptr [[TMP27]], align 8
481481// CHECK-NEXT: [[TMP28:%.*]] = load ptr, ptr [[DOTGLOBAL_TID__ADDR_ASCAST]], align 8
482482// CHECK-NEXT: [[TMP29:%.*]] = load i32, ptr [[TMP28]], align 4
483- // CHECK-NEXT: call void @__kmpc_parallel_51 (ptr addrspacecast (ptr addrspace(1) @[[GLOB1]] to ptr), i32 [[TMP29]], i32 1, i32 -1, i32 -1, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo3v_l52_omp_outlined_omp_outlined, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo3v_l52_omp_outlined_omp_outlined_wrapper, ptr [[CAPTURED_VARS_ADDRS_ASCAST]], i64 3)
483+ // CHECK-NEXT: call void @__kmpc_parallel_60 (ptr addrspacecast (ptr addrspace(1) @[[GLOB1]] to ptr), i32 [[TMP29]], i32 1, i32 -1, i32 -1, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo3v_l52_omp_outlined_omp_outlined, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo3v_l52_omp_outlined_omp_outlined_wrapper, ptr [[CAPTURED_VARS_ADDRS_ASCAST]], i64 3, i32 0 )
484484// CHECK-NEXT: store i32 0, ptr [[J_ASCAST]], align 4
485485// CHECK-NEXT: br label [[FOR_COND:%.*]]
486486// CHECK: for.cond:
@@ -504,7 +504,7 @@ int main() {
504504// CHECK-NEXT: [[TMP36:%.*]] = load i32, ptr [[J_ASCAST]], align 4
505505// CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP36]], 1
506506// CHECK-NEXT: store i32 [[INC]], ptr [[J_ASCAST]], align 4
507- // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP19 :![0-9]+]]
507+ // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP17 :![0-9]+]]
508508// CHECK: for.end:
509509// CHECK-NEXT: call void @__kmpc_free_shared(ptr [[A]], i64 [[TMP21]])
510510// CHECK-NEXT: br label [[OMP_BODY_CONTINUE:%.*]]
@@ -565,9 +565,9 @@ int main() {
565565// CHECK-NEXT: store ptr [[N]], ptr [[N_ADDR_ASCAST]], align 8
566566// CHECK-NEXT: store i64 [[VLA]], ptr [[VLA_ADDR_ASCAST]], align 8
567567// CHECK-NEXT: store ptr [[A]], ptr [[A_ADDR_ASCAST]], align 8
568- // CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[N_ADDR_ASCAST]], align 8
568+ // CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[N_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
569569// CHECK-NEXT: [[TMP1:%.*]] = load i64, ptr [[VLA_ADDR_ASCAST]], align 8
570- // CHECK-NEXT: [[TMP2:%.*]] = load ptr, ptr [[A_ADDR_ASCAST]], align 8
570+ // CHECK-NEXT: [[TMP2:%.*]] = load ptr, ptr [[A_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
571571// CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP0]], align 4
572572// CHECK-NEXT: store i32 [[TMP3]], ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
573573// CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
@@ -708,7 +708,7 @@ int main() {
708708// CHECK-NEXT: store i64 [[VLA]], ptr [[VLA_ADDR_ASCAST]], align 8
709709// CHECK-NEXT: store ptr [[RESULT]], ptr [[RESULT_ADDR_ASCAST]], align 8
710710// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[VLA_ADDR_ASCAST]], align 8
711- // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8
711+ // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
712712// CHECK-NEXT: [[TMP2:%.*]] = call i32 @__kmpc_target_init(ptr addrspacecast (ptr addrspace(1) @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo4v_l76_kernel_environment to ptr), ptr [[DYN_PTR]])
713713// CHECK-NEXT: [[EXEC_USER_CODE:%.*]] = icmp eq i32 [[TMP2]], -1
714714// CHECK-NEXT: br i1 [[EXEC_USER_CODE]], label [[USER_CODE_ENTRY:%.*]], label [[WORKER_EXIT:%.*]]
@@ -777,7 +777,7 @@ int main() {
777777// CHECK-NEXT: store i64 [[VLA]], ptr [[VLA_ADDR_ASCAST]], align 8
778778// CHECK-NEXT: store ptr [[RESULT]], ptr [[RESULT_ADDR_ASCAST]], align 8
779779// CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr [[VLA_ADDR_ASCAST]], align 8
780- // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8
780+ // CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[RESULT_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
781781// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[N_ADDR_ASCAST]], align 4
782782// CHECK-NEXT: [[N1:%.*]] = call align 8 ptr @__kmpc_alloc_shared(i64 4)
783783// CHECK-NEXT: store i32 [[TMP2]], ptr [[N1]], align 4
@@ -849,7 +849,7 @@ int main() {
849849// CHECK-NEXT: store ptr [[A]], ptr [[TMP28]], align 8
850850// CHECK-NEXT: [[TMP29:%.*]] = load ptr, ptr [[DOTGLOBAL_TID__ADDR_ASCAST]], align 8
851851// CHECK-NEXT: [[TMP30:%.*]] = load i32, ptr [[TMP29]], align 4
852- // CHECK-NEXT: call void @__kmpc_parallel_51 (ptr addrspacecast (ptr addrspace(1) @[[GLOB1]] to ptr), i32 [[TMP30]], i32 1, i32 -1, i32 -1, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo4v_l76_omp_outlined_omp_outlined, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo4v_l76_omp_outlined_omp_outlined_wrapper, ptr [[CAPTURED_VARS_ADDRS_ASCAST]], i64 3)
852+ // CHECK-NEXT: call void @__kmpc_parallel_60 (ptr addrspacecast (ptr addrspace(1) @[[GLOB1]] to ptr), i32 [[TMP30]], i32 1, i32 -1, i32 -1, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo4v_l76_omp_outlined_omp_outlined, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z4foo4v_l76_omp_outlined_omp_outlined_wrapper, ptr [[CAPTURED_VARS_ADDRS_ASCAST]], i64 3, i32 0 )
853853// CHECK-NEXT: store i32 0, ptr [[J_ASCAST]], align 4
854854// CHECK-NEXT: br label [[FOR_COND:%.*]]
855855// CHECK: for.cond:
@@ -873,7 +873,7 @@ int main() {
873873// CHECK-NEXT: [[TMP37:%.*]] = load i32, ptr [[J_ASCAST]], align 4
874874// CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP37]], 1
875875// CHECK-NEXT: store i32 [[INC]], ptr [[J_ASCAST]], align 4
876- // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP20 :![0-9]+]]
876+ // CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP18 :![0-9]+]]
877877// CHECK: for.end:
878878// CHECK-NEXT: call void @__kmpc_free_shared(ptr [[A]], i64 [[TMP22]])
879879// CHECK-NEXT: br label [[OMP_BODY_CONTINUE:%.*]]
@@ -934,9 +934,9 @@ int main() {
934934// CHECK-NEXT: store ptr [[N]], ptr [[N_ADDR_ASCAST]], align 8
935935// CHECK-NEXT: store i64 [[VLA]], ptr [[VLA_ADDR_ASCAST]], align 8
936936// CHECK-NEXT: store ptr [[A]], ptr [[A_ADDR_ASCAST]], align 8
937- // CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[N_ADDR_ASCAST]], align 8
937+ // CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[N_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
938938// CHECK-NEXT: [[TMP1:%.*]] = load i64, ptr [[VLA_ADDR_ASCAST]], align 8
939- // CHECK-NEXT: [[TMP2:%.*]] = load ptr, ptr [[A_ADDR_ASCAST]], align 8
939+ // CHECK-NEXT: [[TMP2:%.*]] = load ptr, ptr [[A_ADDR_ASCAST]], align 8, !nonnull [[META9]], !align [[META10]]
940940// CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[TMP0]], align 4
941941// CHECK-NEXT: store i32 [[TMP3]], ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
942942// CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
0 commit comments