@@ -84,4 +84,54 @@ extern "C" void acc_combined(int N) {
84
84
// CHECK: acc.terminator
85
85
// CHECK-NEXT: } loc
86
86
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
+
87
137
}
0 commit comments