xref: /llvm-project/clang/test/AST/ast-print-openacc-update-construct.cpp (revision 553fa204ed5ab4c48bc6080451df24310c00e69c)
1db81e8c4Serichkeane // RUN: %clang_cc1 -fopenacc -ast-print %s -o - | FileCheck %s
2dd1e8aa0Serichkeane void uses(bool cond) {
3e2c1b1feSerichkeane   int I;
4e2c1b1feSerichkeane   int *iPtr;
5e2c1b1feSerichkeane   int array[5];
6*553fa204Serichkeane   // CHECK: #pragma acc update self(I)
7*553fa204Serichkeane #pragma acc update self(I)
8dd1e8aa0Serichkeane 
9*553fa204Serichkeane // CHECK: #pragma acc update self(I) if_present
10*553fa204Serichkeane #pragma acc update self(I) if_present
11*553fa204Serichkeane // CHECK: #pragma acc update self(I) if(cond)
12*553fa204Serichkeane #pragma acc update self(I) if(cond)
13e2c1b1feSerichkeane 
14*553fa204Serichkeane // CHECK: #pragma acc update self(I) async
15*553fa204Serichkeane #pragma acc update self(I) async
16*553fa204Serichkeane // CHECK: #pragma acc update self(I) async(*iPtr)
17*553fa204Serichkeane #pragma acc update self(I) async(*iPtr)
18*553fa204Serichkeane // CHECK: #pragma acc update self(I) async(I)
19*553fa204Serichkeane #pragma acc update self(I) async(I)
20e2c1b1feSerichkeane 
21*553fa204Serichkeane // CHECK: #pragma acc update self(I) wait(*iPtr, I) async
22*553fa204Serichkeane #pragma acc update self(I) wait(*iPtr, I) async
23e2c1b1feSerichkeane 
24*553fa204Serichkeane // CHECK: #pragma acc update self(I) wait(queues: *iPtr, I) async(*iPtr)
25*553fa204Serichkeane #pragma acc update self(I) wait(queues:*iPtr, I) async(*iPtr)
26e2c1b1feSerichkeane 
27*553fa204Serichkeane // CHECK: #pragma acc update self(I) wait(devnum: I : *iPtr, I) async(I)
28*553fa204Serichkeane #pragma acc update self(I) wait(devnum:I:*iPtr, I) async(I)
29e2c1b1feSerichkeane 
30*553fa204Serichkeane // CHECK: #pragma acc update self(I) wait(devnum: I : queues: *iPtr, I) if(I == array[I]) async(I)
31*553fa204Serichkeane #pragma acc update self(I) wait(devnum:I:queues:*iPtr, I) if(I == array[I]) async(I)
32666eee0eSerichkeane 
33*553fa204Serichkeane // CHECK: #pragma acc update self(I) device_type(I) dtype(H)
34*553fa204Serichkeane #pragma acc update self(I) device_type(I) dtype(H)
35666eee0eSerichkeane 
36*553fa204Serichkeane // CHECK: #pragma acc update self(I) device_type(J) dtype(K)
37*553fa204Serichkeane #pragma acc update self(I) device_type(J) dtype(K)
382c2accbcSerichkeane 
392c2accbcSerichkeane // CHECK: #pragma acc update self(I, iPtr, array, array[1], array[1:2])
402c2accbcSerichkeane #pragma acc update self(I, iPtr, array, array[1], array[1:2])
41be32621cSerichkeane 
42be32621cSerichkeane // CHECK: #pragma acc update host(I, iPtr, array, array[1], array[1:2])
43be32621cSerichkeane #pragma acc update host (I, iPtr, array, array[1], array[1:2])
44be32621cSerichkeane 
45be32621cSerichkeane // CHECK: #pragma acc update device(I, iPtr, array, array[1], array[1:2])
46be32621cSerichkeane #pragma acc update device(I, iPtr, array, array[1], array[1:2])
47db81e8c4Serichkeane }
48