brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.1 KiB · c75c6e4 Raw
252 lines · cpp
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --include-generated-funcs2// RUN: %clang_cc1 -verify -triple x86_64-unknown-linux -fopenmp -x c++ -emit-llvm %s -o - | FileCheck %s3 4// expected-no-diagnostics5typedef void *omp_interop_t;6 7void test1() {8 9  int device_id = 4;10  int D0, D1, D2;11  omp_interop_t interop;12 13#pragma omp interop init(target : interop)14 15#pragma omp interop init(targetsync : interop)16 17#pragma omp interop init(target : interop) device(device_id)18 19#pragma omp interop init(targetsync : interop) device(device_id)20 21#pragma omp interop use(interop) depend(in : D0, D1) nowait22 23#pragma omp interop use(interop) depend(in : D0) depend(inout : D1) \24    depend(out : D2) nowait25 26#pragma omp interop destroy(interop) depend(in : D0, D1)27}28 29struct S {30  omp_interop_t interop;31  void member_test();32};33 34void S::member_test() {35 36  int device_id = 4;37  int D0, D1, D2;38 39#pragma omp interop init(target : interop)40 41#pragma omp interop init(targetsync : interop)42 43#pragma omp interop init(target : interop) device(device_id)44 45#pragma omp interop init(targetsync : interop) device(device_id)46 47#pragma omp interop use(interop) depend(in : D0, D1) nowait48 49#pragma omp interop use(interop) depend(in : D0) depend(inout : D1) \50    depend(out : D2) nowait51 52#pragma omp interop destroy(interop) depend(in : D0, D1)53}54// CHECK-LABEL: @_Z5test1v(55// CHECK-NEXT:  entry:56// CHECK-NEXT:    [[DEVICE_ID:%.*]] = alloca i32, align 457// CHECK-NEXT:    [[D0:%.*]] = alloca i32, align 458// CHECK-NEXT:    [[D1:%.*]] = alloca i32, align 459// CHECK-NEXT:    [[D2:%.*]] = alloca i32, align 460// CHECK-NEXT:    [[INTEROP:%.*]] = alloca ptr, align 861// CHECK-NEXT:    [[DOTDEP_ARR_ADDR:%.*]] = alloca [2 x %struct.kmp_depend_info], align 862// CHECK-NEXT:    [[DEP_COUNTER_ADDR:%.*]] = alloca i64, align 863// CHECK-NEXT:    [[DOTDEP_ARR_ADDR5:%.*]] = alloca [3 x %struct.kmp_depend_info], align 864// CHECK-NEXT:    [[DEP_COUNTER_ADDR6:%.*]] = alloca i64, align 865// CHECK-NEXT:    [[DOTDEP_ARR_ADDR8:%.*]] = alloca [2 x %struct.kmp_depend_info], align 866// CHECK-NEXT:    [[DEP_COUNTER_ADDR9:%.*]] = alloca i64, align 867// CHECK-NEXT:    store i32 4, ptr [[DEVICE_ID]], align 468// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1:[0-9]+]])69// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM]], ptr [[INTEROP]], i32 1, i32 -1, i32 0, ptr null, i32 0)70// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM1:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])71// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM1]], ptr [[INTEROP]], i32 2, i32 -1, i32 0, ptr null, i32 0)72// CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[DEVICE_ID]], align 473// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM2:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])74// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM2]], ptr [[INTEROP]], i32 1, i32 [[TMP0]], i32 0, ptr null, i32 0)75// CHECK-NEXT:    [[TMP1:%.*]] = load i32, ptr [[DEVICE_ID]], align 476// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM3:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])77// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM3]], ptr [[INTEROP]], i32 2, i32 [[TMP1]], i32 0, ptr null, i32 0)78// CHECK-NEXT:    [[TMP2:%.*]] = getelementptr inbounds [2 x %struct.kmp_depend_info], ptr [[DOTDEP_ARR_ADDR]], i64 0, i64 079// CHECK-NEXT:    [[TMP3:%.*]] = ptrtoint ptr [[D0]] to i6480// CHECK-NEXT:    [[TMP4:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO:%.*]], ptr [[TMP2]], i64 081// CHECK-NEXT:    [[TMP5:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP4]], i32 0, i32 082// CHECK-NEXT:    store i64 [[TMP3]], ptr [[TMP5]], align 883// CHECK-NEXT:    [[TMP6:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP4]], i32 0, i32 184// CHECK-NEXT:    store i64 4, ptr [[TMP6]], align 885// CHECK-NEXT:    [[TMP7:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP4]], i32 0, i32 286// CHECK-NEXT:    store i8 1, ptr [[TMP7]], align 887// CHECK-NEXT:    [[TMP8:%.*]] = ptrtoint ptr [[D1]] to i6488// CHECK-NEXT:    [[TMP9:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP2]], i64 189// CHECK-NEXT:    [[TMP10:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP9]], i32 0, i32 090// CHECK-NEXT:    store i64 [[TMP8]], ptr [[TMP10]], align 891// CHECK-NEXT:    [[TMP11:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP9]], i32 0, i32 192// CHECK-NEXT:    store i64 4, ptr [[TMP11]], align 893// CHECK-NEXT:    [[TMP12:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP9]], i32 0, i32 294// CHECK-NEXT:    store i8 1, ptr [[TMP12]], align 895// CHECK-NEXT:    store i64 2, ptr [[DEP_COUNTER_ADDR]], align 896// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM4:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])97// CHECK-NEXT:    call void @__tgt_interop_use(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM4]], ptr [[INTEROP]], i32 -1, i32 2, ptr [[TMP2]], i32 1)98// CHECK-NEXT:    [[TMP13:%.*]] = getelementptr inbounds [3 x %struct.kmp_depend_info], ptr [[DOTDEP_ARR_ADDR5]], i64 0, i64 099// CHECK-NEXT:    [[TMP14:%.*]] = ptrtoint ptr [[D0]] to i64100// CHECK-NEXT:    [[TMP15:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP13]], i64 0101// CHECK-NEXT:    [[TMP16:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP15]], i32 0, i32 0102// CHECK-NEXT:    store i64 [[TMP14]], ptr [[TMP16]], align 8103// CHECK-NEXT:    [[TMP17:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP15]], i32 0, i32 1104// CHECK-NEXT:    store i64 4, ptr [[TMP17]], align 8105// CHECK-NEXT:    [[TMP18:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP15]], i32 0, i32 2106// CHECK-NEXT:    store i8 1, ptr [[TMP18]], align 8107// CHECK-NEXT:    [[TMP19:%.*]] = ptrtoint ptr [[D1]] to i64108// CHECK-NEXT:    [[TMP20:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP13]], i64 1109// CHECK-NEXT:    [[TMP21:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP20]], i32 0, i32 0110// CHECK-NEXT:    store i64 [[TMP19]], ptr [[TMP21]], align 8111// CHECK-NEXT:    [[TMP22:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP20]], i32 0, i32 1112// CHECK-NEXT:    store i64 4, ptr [[TMP22]], align 8113// CHECK-NEXT:    [[TMP23:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP20]], i32 0, i32 2114// CHECK-NEXT:    store i8 3, ptr [[TMP23]], align 8115// CHECK-NEXT:    [[TMP24:%.*]] = ptrtoint ptr [[D2]] to i64116// CHECK-NEXT:    [[TMP25:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP13]], i64 2117// CHECK-NEXT:    [[TMP26:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP25]], i32 0, i32 0118// CHECK-NEXT:    store i64 [[TMP24]], ptr [[TMP26]], align 8119// CHECK-NEXT:    [[TMP27:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP25]], i32 0, i32 1120// CHECK-NEXT:    store i64 4, ptr [[TMP27]], align 8121// CHECK-NEXT:    [[TMP28:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP25]], i32 0, i32 2122// CHECK-NEXT:    store i8 3, ptr [[TMP28]], align 8123// CHECK-NEXT:    store i64 3, ptr [[DEP_COUNTER_ADDR6]], align 8124// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM7:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])125// CHECK-NEXT:    call void @__tgt_interop_use(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM7]], ptr [[INTEROP]], i32 -1, i32 3, ptr [[TMP13]], i32 1)126// CHECK-NEXT:    [[TMP29:%.*]] = getelementptr inbounds [2 x %struct.kmp_depend_info], ptr [[DOTDEP_ARR_ADDR8]], i64 0, i64 0127// CHECK-NEXT:    [[TMP30:%.*]] = ptrtoint ptr [[D0]] to i64128// CHECK-NEXT:    [[TMP31:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP29]], i64 0129// CHECK-NEXT:    [[TMP32:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP31]], i32 0, i32 0130// CHECK-NEXT:    store i64 [[TMP30]], ptr [[TMP32]], align 8131// CHECK-NEXT:    [[TMP33:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP31]], i32 0, i32 1132// CHECK-NEXT:    store i64 4, ptr [[TMP33]], align 8133// CHECK-NEXT:    [[TMP34:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP31]], i32 0, i32 2134// CHECK-NEXT:    store i8 1, ptr [[TMP34]], align 8135// CHECK-NEXT:    [[TMP35:%.*]] = ptrtoint ptr [[D1]] to i64136// CHECK-NEXT:    [[TMP36:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP29]], i64 1137// CHECK-NEXT:    [[TMP37:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP36]], i32 0, i32 0138// CHECK-NEXT:    store i64 [[TMP35]], ptr [[TMP37]], align 8139// CHECK-NEXT:    [[TMP38:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP36]], i32 0, i32 1140// CHECK-NEXT:    store i64 4, ptr [[TMP38]], align 8141// CHECK-NEXT:    [[TMP39:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP36]], i32 0, i32 2142// CHECK-NEXT:    store i8 1, ptr [[TMP39]], align 8143// CHECK-NEXT:    store i64 2, ptr [[DEP_COUNTER_ADDR9]], align 8144// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM10:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])145// CHECK-NEXT:    call void @__tgt_interop_destroy(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM10]], ptr [[INTEROP]], i32 -1, i32 2, ptr [[TMP29]], i32 0)146// CHECK-NEXT:    ret void147//148//149// CHECK-LABEL: @_ZN1S11member_testEv(150// CHECK-NEXT:  entry:151// CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca ptr, align 8152// CHECK-NEXT:    [[DEVICE_ID:%.*]] = alloca i32, align 4153// CHECK-NEXT:    [[D0:%.*]] = alloca i32, align 4154// CHECK-NEXT:    [[D1:%.*]] = alloca i32, align 4155// CHECK-NEXT:    [[D2:%.*]] = alloca i32, align 4156// CHECK-NEXT:    [[DOTDEP_ARR_ADDR:%.*]] = alloca [2 x %struct.kmp_depend_info], align 8157// CHECK-NEXT:    [[DEP_COUNTER_ADDR:%.*]] = alloca i64, align 8158// CHECK-NEXT:    [[DOTDEP_ARR_ADDR10:%.*]] = alloca [3 x %struct.kmp_depend_info], align 8159// CHECK-NEXT:    [[DEP_COUNTER_ADDR11:%.*]] = alloca i64, align 8160// CHECK-NEXT:    [[DOTDEP_ARR_ADDR14:%.*]] = alloca [2 x %struct.kmp_depend_info], align 8161// CHECK-NEXT:    [[DEP_COUNTER_ADDR15:%.*]] = alloca i64, align 8162// CHECK-NEXT:    store ptr [[THIS:%.*]], ptr [[THIS_ADDR]], align 8163// CHECK-NEXT:    [[THIS1:%.*]] = load ptr, ptr [[THIS_ADDR]], align 8164// CHECK-NEXT:    store i32 4, ptr [[DEVICE_ID]], align 4165// CHECK-NEXT:    [[INTEROP:%.*]] = getelementptr inbounds nuw [[STRUCT_S:%.*]], ptr [[THIS1]], i32 0, i32 0166// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])167// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM]], ptr [[INTEROP]], i32 1, i32 -1, i32 0, ptr null, i32 0)168// CHECK-NEXT:    [[INTEROP2:%.*]] = getelementptr inbounds nuw [[STRUCT_S]], ptr [[THIS1]], i32 0, i32 0169// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM3:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])170// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM3]], ptr [[INTEROP2]], i32 2, i32 -1, i32 0, ptr null, i32 0)171// CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[DEVICE_ID]], align 4172// CHECK-NEXT:    [[INTEROP4:%.*]] = getelementptr inbounds nuw [[STRUCT_S]], ptr [[THIS1]], i32 0, i32 0173// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM5:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])174// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM5]], ptr [[INTEROP4]], i32 1, i32 [[TMP0]], i32 0, ptr null, i32 0)175// CHECK-NEXT:    [[TMP1:%.*]] = load i32, ptr [[DEVICE_ID]], align 4176// CHECK-NEXT:    [[INTEROP6:%.*]] = getelementptr inbounds nuw [[STRUCT_S]], ptr [[THIS1]], i32 0, i32 0177// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM7:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])178// CHECK-NEXT:    call void @__tgt_interop_init(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM7]], ptr [[INTEROP6]], i32 2, i32 [[TMP1]], i32 0, ptr null, i32 0)179// CHECK-NEXT:    [[TMP2:%.*]] = getelementptr inbounds [2 x %struct.kmp_depend_info], ptr [[DOTDEP_ARR_ADDR]], i64 0, i64 0180// CHECK-NEXT:    [[TMP3:%.*]] = ptrtoint ptr [[D0]] to i64181// CHECK-NEXT:    [[TMP4:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO:%.*]], ptr [[TMP2]], i64 0182// CHECK-NEXT:    [[TMP5:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP4]], i32 0, i32 0183// CHECK-NEXT:    store i64 [[TMP3]], ptr [[TMP5]], align 8184// CHECK-NEXT:    [[TMP6:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP4]], i32 0, i32 1185// CHECK-NEXT:    store i64 4, ptr [[TMP6]], align 8186// CHECK-NEXT:    [[TMP7:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP4]], i32 0, i32 2187// CHECK-NEXT:    store i8 1, ptr [[TMP7]], align 8188// CHECK-NEXT:    [[TMP8:%.*]] = ptrtoint ptr [[D1]] to i64189// CHECK-NEXT:    [[TMP9:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP2]], i64 1190// CHECK-NEXT:    [[TMP10:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP9]], i32 0, i32 0191// CHECK-NEXT:    store i64 [[TMP8]], ptr [[TMP10]], align 8192// CHECK-NEXT:    [[TMP11:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP9]], i32 0, i32 1193// CHECK-NEXT:    store i64 4, ptr [[TMP11]], align 8194// CHECK-NEXT:    [[TMP12:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP9]], i32 0, i32 2195// CHECK-NEXT:    store i8 1, ptr [[TMP12]], align 8196// CHECK-NEXT:    store i64 2, ptr [[DEP_COUNTER_ADDR]], align 8197// CHECK-NEXT:    [[INTEROP8:%.*]] = getelementptr inbounds nuw [[STRUCT_S]], ptr [[THIS1]], i32 0, i32 0198// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM9:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])199// CHECK-NEXT:    call void @__tgt_interop_use(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM9]], ptr [[INTEROP8]], i32 -1, i32 2, ptr [[TMP2]], i32 1)200// CHECK-NEXT:    [[TMP13:%.*]] = getelementptr inbounds [3 x %struct.kmp_depend_info], ptr [[DOTDEP_ARR_ADDR10]], i64 0, i64 0201// CHECK-NEXT:    [[TMP14:%.*]] = ptrtoint ptr [[D0]] to i64202// CHECK-NEXT:    [[TMP15:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP13]], i64 0203// CHECK-NEXT:    [[TMP16:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP15]], i32 0, i32 0204// CHECK-NEXT:    store i64 [[TMP14]], ptr [[TMP16]], align 8205// CHECK-NEXT:    [[TMP17:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP15]], i32 0, i32 1206// CHECK-NEXT:    store i64 4, ptr [[TMP17]], align 8207// CHECK-NEXT:    [[TMP18:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP15]], i32 0, i32 2208// CHECK-NEXT:    store i8 1, ptr [[TMP18]], align 8209// CHECK-NEXT:    [[TMP19:%.*]] = ptrtoint ptr [[D1]] to i64210// CHECK-NEXT:    [[TMP20:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP13]], i64 1211// CHECK-NEXT:    [[TMP21:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP20]], i32 0, i32 0212// CHECK-NEXT:    store i64 [[TMP19]], ptr [[TMP21]], align 8213// CHECK-NEXT:    [[TMP22:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP20]], i32 0, i32 1214// CHECK-NEXT:    store i64 4, ptr [[TMP22]], align 8215// CHECK-NEXT:    [[TMP23:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP20]], i32 0, i32 2216// CHECK-NEXT:    store i8 3, ptr [[TMP23]], align 8217// CHECK-NEXT:    [[TMP24:%.*]] = ptrtoint ptr [[D2]] to i64218// CHECK-NEXT:    [[TMP25:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP13]], i64 2219// CHECK-NEXT:    [[TMP26:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP25]], i32 0, i32 0220// CHECK-NEXT:    store i64 [[TMP24]], ptr [[TMP26]], align 8221// CHECK-NEXT:    [[TMP27:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP25]], i32 0, i32 1222// CHECK-NEXT:    store i64 4, ptr [[TMP27]], align 8223// CHECK-NEXT:    [[TMP28:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP25]], i32 0, i32 2224// CHECK-NEXT:    store i8 3, ptr [[TMP28]], align 8225// CHECK-NEXT:    store i64 3, ptr [[DEP_COUNTER_ADDR11]], align 8226// CHECK-NEXT:    [[INTEROP12:%.*]] = getelementptr inbounds nuw [[STRUCT_S]], ptr [[THIS1]], i32 0, i32 0227// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM13:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])228// CHECK-NEXT:    call void @__tgt_interop_use(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13]], ptr [[INTEROP12]], i32 -1, i32 3, ptr [[TMP13]], i32 1)229// CHECK-NEXT:    [[TMP29:%.*]] = getelementptr inbounds [2 x %struct.kmp_depend_info], ptr [[DOTDEP_ARR_ADDR14]], i64 0, i64 0230// CHECK-NEXT:    [[TMP30:%.*]] = ptrtoint ptr [[D0]] to i64231// CHECK-NEXT:    [[TMP31:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP29]], i64 0232// CHECK-NEXT:    [[TMP32:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP31]], i32 0, i32 0233// CHECK-NEXT:    store i64 [[TMP30]], ptr [[TMP32]], align 8234// CHECK-NEXT:    [[TMP33:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP31]], i32 0, i32 1235// CHECK-NEXT:    store i64 4, ptr [[TMP33]], align 8236// CHECK-NEXT:    [[TMP34:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP31]], i32 0, i32 2237// CHECK-NEXT:    store i8 1, ptr [[TMP34]], align 8238// CHECK-NEXT:    [[TMP35:%.*]] = ptrtoint ptr [[D1]] to i64239// CHECK-NEXT:    [[TMP36:%.*]] = getelementptr [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP29]], i64 1240// CHECK-NEXT:    [[TMP37:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP36]], i32 0, i32 0241// CHECK-NEXT:    store i64 [[TMP35]], ptr [[TMP37]], align 8242// CHECK-NEXT:    [[TMP38:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP36]], i32 0, i32 1243// CHECK-NEXT:    store i64 4, ptr [[TMP38]], align 8244// CHECK-NEXT:    [[TMP39:%.*]] = getelementptr inbounds nuw [[STRUCT_KMP_DEPEND_INFO]], ptr [[TMP36]], i32 0, i32 2245// CHECK-NEXT:    store i8 1, ptr [[TMP39]], align 8246// CHECK-NEXT:    store i64 2, ptr [[DEP_COUNTER_ADDR15]], align 8247// CHECK-NEXT:    [[INTEROP16:%.*]] = getelementptr inbounds nuw [[STRUCT_S]], ptr [[THIS1]], i32 0, i32 0248// CHECK-NEXT:    [[OMP_GLOBAL_THREAD_NUM17:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])249// CHECK-NEXT:    call void @__tgt_interop_destroy(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM17]], ptr [[INTEROP16]], i32 -1, i32 2, ptr [[TMP29]], i32 0)250// CHECK-NEXT:    ret void251//252