@@ -84,4 +84,54 @@ extern "C" void acc_combined(int N) {
8484 // CHECK: acc.terminator
8585 // CHECK-NEXT: } loc
8686
87+ #pragma acc parallel loop auto
88+ for (unsigned I = 0 ; I < N; ++I);
89+ // CHECK: acc.parallel combined(loop) {
90+ // CHECK: acc.loop combined(parallel) {
91+ // CHECK: acc.yield
92+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<none>]} loc
93+ // CHECK: acc.yield
94+ // CHECK-NEXT: } loc
95+ #pragma acc serial loop device_type(nvidia, radeon) auto
96+ for (unsigned I = 0 ; I < N; ++I);
97+ // CHECK: acc.serial combined(loop) {
98+ // CHECK: acc.loop combined(serial) {
99+ // CHECK: acc.yield
100+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<nvidia>, #acc.device_type<radeon>]} loc
101+ // CHECK: acc.yield
102+ // CHECK-NEXT: } loc
103+ #pragma acc kernels loop auto device_type(nvidia, radeon)
104+ for (unsigned I = 0 ; I < N; ++I);
105+ // CHECK: acc.kernels combined(loop) {
106+ // CHECK: acc.loop combined(kernels) {
107+ // CHECK: acc.yield
108+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<none>]} loc
109+ // CHECK: acc.terminator
110+ // CHECK-NEXT: } loc
111+
112+ #pragma acc parallel loop independent
113+ for (unsigned I = 0 ; I < N; ++I);
114+ // CHECK: acc.parallel combined(loop) {
115+ // CHECK: acc.loop combined(parallel) {
116+ // CHECK: acc.yield
117+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<none>]} loc
118+ // CHECK: acc.yield
119+ // CHECK-NEXT: } loc
120+ #pragma acc serial loop device_type(nvidia, radeon) independent
121+ for (unsigned I = 0 ; I < N; ++I);
122+ // CHECK: acc.serial combined(loop) {
123+ // CHECK: acc.loop combined(serial) {
124+ // CHECK: acc.yield
125+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<nvidia>, #acc.device_type<radeon>]} loc
126+ // CHECK: acc.yield
127+ // CHECK-NEXT: } loc
128+ #pragma acc kernels loop independent device_type(nvidia, radeon)
129+ for (unsigned I = 0 ; I < N; ++I);
130+ // CHECK: acc.kernels combined(loop) {
131+ // CHECK: acc.loop combined(kernels) {
132+ // CHECK: acc.yield
133+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<none>]} loc
134+ // CHECK: acc.terminator
135+ // CHECK-NEXT: } loc
136+
87137}
0 commit comments