xref: /llvm-project/clang/test/AST/ast-print-openacc-loop-construct.cpp (revision 97da34e0157d928e3cd0e9722b40ccf0d5769b5b)
1 // RUN: %clang_cc1 -fopenacc -Wno-openacc-deprecated-clause-alias -ast-print %s -o - | FileCheck %s
2 
3 struct SomeStruct{};
4 
5 void foo() {
6 // CHECK: #pragma acc loop
7 // CHECK-NEXT: for (;;)
8 // CHECK-NEXT: ;
9 #pragma acc loop
10   for(;;);
11 
12 // CHECK: #pragma acc loop device_type(SomeStruct)
13 // CHECK-NEXT: for (;;)
14 // CHECK-NEXT: ;
15 #pragma acc loop device_type(SomeStruct)
16   for(;;);
17 
18 // CHECK: #pragma acc loop device_type(int)
19 // CHECK-NEXT: for (;;)
20 // CHECK-NEXT: ;
21 #pragma acc loop device_type(int)
22   for(;;);
23 
24 // CHECK: #pragma acc loop dtype(bool)
25 // CHECK-NEXT: for (;;)
26 // CHECK-NEXT: ;
27 #pragma acc loop dtype(bool)
28   for(;;);
29 
30 // CHECK: #pragma acc loop dtype(AnotherIdent)
31 // CHECK-NEXT: for (;;)
32 // CHECK-NEXT: ;
33 #pragma acc loop dtype(AnotherIdent)
34   for(;;);
35 
36 // CHECK: #pragma acc loop independent
37 // CHECK-NEXT: for (;;)
38 // CHECK-NEXT: ;
39 #pragma acc loop independent
40   for(;;);
41 // CHECK: #pragma acc loop seq
42 // CHECK-NEXT: for (;;)
43 // CHECK-NEXT: ;
44 #pragma acc loop seq
45   for(;;);
46 // CHECK: #pragma acc loop auto
47 // CHECK-NEXT: for (;;)
48 // CHECK-NEXT: ;
49 #pragma acc loop auto
50   for(;;);
51 
52   int i;
53   float array[5];
54 
55 // CHECK: #pragma acc loop private(i, array[1], array, array[1:2])
56 // CHECK-NEXT: for (;;)
57 // CHECK-NEXT: ;
58 #pragma acc loop private(i, array[1], array, array[1:2])
59   for(;;);
60 
61 // CHECK: #pragma acc loop collapse(1)
62 // CHECK-NEXT: for (;;)
63 // CHECK-NEXT: ;
64 #pragma acc loop collapse(1)
65   for(;;);
66 // CHECK: #pragma acc loop collapse(force:1)
67 // CHECK-NEXT: for (;;)
68 // CHECK-NEXT: ;
69 #pragma acc loop collapse(force:1)
70   for(;;);
71 // CHECK: #pragma acc loop collapse(2)
72 // CHECK-NEXT: for (;;)
73 // CHECK-NEXT: for (;;)
74 // CHECK-NEXT: ;
75 #pragma acc loop collapse(2)
76   for(;;)
77     for(;;);
78 // CHECK: #pragma acc loop collapse(force:2)
79 // CHECK-NEXT: for (;;)
80 // CHECK-NEXT: for (;;)
81 // CHECK-NEXT: ;
82 #pragma acc loop collapse(force:2)
83   for(;;)
84     for(;;);
85 }
86