@@ -30,4 +30,83 @@ extern "C" void acc_loop(int *A, int *B, int *C, int N) {
3030 // CHECK-NEXT: } loc
3131 // CHECK-NEXT: acc.yield
3232 // CHECK-NEXT: } loc
33+
34+
35+ #pragma acc loop seq
36+ for (unsigned I = 0 ; I < N; ++I);
37+ // CHECK: acc.loop {
38+ // CHECK: acc.yield
39+ // CHECK-NEXT: } attributes {seq = [#acc.device_type<none>]} loc
40+ #pragma acc loop device_type(nvidia, radeon) seq
41+ for (unsigned I = 0 ; I < N; ++I);
42+ // CHECK: acc.loop {
43+ // CHECK: acc.yield
44+ // CHECK-NEXT: } attributes {seq = [#acc.device_type<nvidia>, #acc.device_type<radeon>]} loc
45+ #pragma acc loop device_type(radeon) seq
46+ for (unsigned I = 0 ; I < N; ++I);
47+ // CHECK: acc.loop {
48+ // CHECK: acc.yield
49+ // CHECK-NEXT: } attributes {seq = [#acc.device_type<radeon>]} loc
50+ #pragma acc loop seq device_type(nvidia, radeon)
51+ for (unsigned I = 0 ; I < N; ++I);
52+ // CHECK: acc.loop {
53+ // CHECK: acc.yield
54+ // CHECK-NEXT: } attributes {seq = [#acc.device_type<none>]} loc
55+ #pragma acc loop seq device_type(radeon)
56+ for (unsigned I = 0 ; I < N; ++I);
57+ // CHECK: acc.loop {
58+ // CHECK: acc.yield
59+ // CHECK-NEXT: } attributes {seq = [#acc.device_type<none>]} loc
60+
61+ #pragma acc loop independent
62+ for (unsigned I = 0 ; I < N; ++I);
63+ // CHECK: acc.loop {
64+ // CHECK: acc.yield
65+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<none>]} loc
66+ #pragma acc loop device_type(nvidia, radeon) independent
67+ for (unsigned I = 0 ; I < N; ++I);
68+ // CHECK: acc.loop {
69+ // CHECK: acc.yield
70+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<nvidia>, #acc.device_type<radeon>]} loc
71+ #pragma acc loop device_type(radeon) independent
72+ for (unsigned I = 0 ; I < N; ++I);
73+ // CHECK: acc.loop {
74+ // CHECK: acc.yield
75+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<radeon>]} loc
76+ #pragma acc loop independent device_type(nvidia, radeon)
77+ for (unsigned I = 0 ; I < N; ++I);
78+ // CHECK: acc.loop {
79+ // CHECK: acc.yield
80+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<none>]} loc
81+ #pragma acc loop independent device_type(radeon)
82+ for (unsigned I = 0 ; I < N; ++I);
83+ // CHECK: acc.loop {
84+ // CHECK: acc.yield
85+ // CHECK-NEXT: } attributes {independent = [#acc.device_type<none>]} loc
86+
87+ #pragma acc loop auto
88+ for (unsigned I = 0 ; I < N; ++I);
89+ // CHECK: acc.loop {
90+ // CHECK: acc.yield
91+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<none>]} loc
92+ #pragma acc loop device_type(nvidia, radeon) auto
93+ for (unsigned I = 0 ; I < N; ++I);
94+ // CHECK: acc.loop {
95+ // CHECK: acc.yield
96+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<nvidia>, #acc.device_type<radeon>]} loc
97+ #pragma acc loop device_type(radeon) auto
98+ for (unsigned I = 0 ; I < N; ++I);
99+ // CHECK: acc.loop {
100+ // CHECK: acc.yield
101+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<radeon>]} loc
102+ #pragma acc loop auto device_type(nvidia, radeon)
103+ for (unsigned I = 0 ; I < N; ++I);
104+ // CHECK: acc.loop {
105+ // CHECK: acc.yield
106+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<none>]} loc
107+ #pragma acc loop auto device_type(radeon)
108+ for (unsigned I = 0 ; I < N; ++I);
109+ // CHECK: acc.loop {
110+ // CHECK: acc.yield
111+ // CHECK-NEXT: } attributes {auto_ = [#acc.device_type<none>]} loc
33112}
0 commit comments