@@ -1048,4 +1048,35 @@ extern "C" void acc_combined_deviceptr(int *arg1, int *arg2) {
1048
1048
// CHECK-NEXT: } loc
1049
1049
// CHECK-NEXT: acc.terminator
1050
1050
// CHECK-NEXT: } loc
1051
+
1052
+ #pragma acc parallel loop deviceptr(arg1) async
1053
+ for (unsigned I = 0 ; I < 5 ; ++I);
1054
+ // CHECK-NEXT: %[[DEVPTR1:.*]] = acc.deviceptr varPtr(%[[ARG1]] : !cir.ptr<!cir.ptr<!s32i>>) async -> !cir.ptr<!cir.ptr<!s32i>> {name = "arg1"}
1055
+ // CHECK-NEXT: acc.parallel combined(loop) dataOperands(%[[DEVPTR1]] : !cir.ptr<!cir.ptr<!s32i>>) async {
1056
+ // CHECK-NEXT: acc.loop combined(parallel) {
1057
+ // CHECK: acc.yield
1058
+ // CHECK-NEXT: } loc
1059
+ // CHECK-NEXT: acc.yield
1060
+ // CHECK-NEXT: } loc
1061
+
1062
+ #pragma acc serial loop deviceptr(arg2) async device_type(nvidia)
1063
+ for (unsigned I = 0 ; I < 5 ; ++I);
1064
+ // CHECK-NEXT: %[[DEVPTR2:.*]] = acc.deviceptr varPtr(%[[ARG2]] : !cir.ptr<!cir.ptr<!s32i>>) async -> !cir.ptr<!cir.ptr<!s32i>> {name = "arg2"}
1065
+ // CHECK-NEXT: acc.serial combined(loop) dataOperands(%[[DEVPTR2]] : !cir.ptr<!cir.ptr<!s32i>>) async {
1066
+ // CHECK-NEXT: acc.loop combined(serial) {
1067
+ // CHECK: acc.yield
1068
+ // CHECK-NEXT: } loc
1069
+ // CHECK-NEXT: acc.yield
1070
+ // CHECK-NEXT: } loc
1071
+
1072
+ #pragma acc kernels loop deviceptr(arg1, arg2) device_type(nvidia) async
1073
+ for (unsigned I = 0 ; I < 5 ; ++I);
1074
+ // CHECK-NEXT: %[[DEVPTR1:.*]] = acc.deviceptr varPtr(%[[ARG1]] : !cir.ptr<!cir.ptr<!s32i>>) async([#acc.device_type<nvidia>]) -> !cir.ptr<!cir.ptr<!s32i>> {name = "arg1"}
1075
+ // CHECK-NEXT: %[[DEVPTR2:.*]] = acc.deviceptr varPtr(%[[ARG2]] : !cir.ptr<!cir.ptr<!s32i>>) async([#acc.device_type<nvidia>]) -> !cir.ptr<!cir.ptr<!s32i>> {name = "arg2"}
1076
+ // CHECK-NEXT: acc.kernels combined(loop) dataOperands(%[[DEVPTR1]], %[[DEVPTR2]] : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!cir.ptr<!s32i>>) async([#acc.device_type<nvidia>]) {
1077
+ // CHECK-NEXT: acc.loop combined(kernels) {
1078
+ // CHECK: acc.yield
1079
+ // CHECK-NEXT: } loc
1080
+ // CHECK-NEXT: acc.terminator
1081
+ // CHECK-NEXT: } loc
1051
1082
}
0 commit comments