// RUN: %clang_cc1 -fopenacc -Wno-openacc-deprecated-clause-alias -ast-print %s -o - | FileCheck %s void foo() { // CHECK: #pragma acc parallel loop // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc parallel loop for(int i = 0;i<5;++i); // CHECK: #pragma acc serial loop // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc serial loop for(int i = 0;i<5;++i); // CHECK: #pragma acc kernels loop // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc kernels loop for(int i = 0;i<5;++i); // CHECK: #pragma acc parallel loop auto // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc parallel loop auto for(int i = 0;i<5;++i); // CHECK: #pragma acc serial loop seq // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc serial loop seq for(int i = 0;i<5;++i); // CHECK: #pragma acc kernels loop independent // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc kernels loop independent for(int i = 0;i<5;++i); bool SomeB; struct SomeStruct{} SomeStructImpl; //CHECK: #pragma acc parallel loop dtype(SomeB) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc parallel loop dtype(SomeB) for(int i = 0;i<5;++i); //CHECK: #pragma acc serial loop device_type(SomeStruct) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc serial loop device_type(SomeStruct) for(int i = 0;i<5;++i); //CHECK: #pragma acc kernels loop device_type(int) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc kernels loop device_type(int) for(int i = 0;i<5;++i); //CHECK: #pragma acc parallel loop dtype(bool) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc parallel loop dtype(bool) for(int i = 0;i<5;++i); //CHECK: #pragma acc serial loop device_type(SomeStructImpl) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc serial loop device_type (SomeStructImpl) for(int i = 0;i<5;++i); // CHECK: #pragma acc kernels loop dtype(AnotherIdent) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc kernels loop dtype(AnotherIdent) for(int i = 0;i<5;++i); int i; float array[5]; // CHECK: #pragma acc parallel loop self(i == 3) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc parallel loop self(i == 3) for(int i = 0;i<5;++i); // CHECK: #pragma acc kernels loop if(i == array[1]) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc kernels loop if(i == array[1]) for(int i = 0;i<5;++i); // CHECK: #pragma acc parallel loop default(none) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc parallel loop default(none) for(int i = 0;i<5;++i); // CHECK: #pragma acc serial loop default(present) // CHECK-NEXT: for (int i = 0; i < 5; ++i) // CHECK-NEXT: ; #pragma acc serial loop default(present) for(int i = 0;i<5;++i); // CHECK: #pragma acc parallel loop private(i, array[1], array, array[1:2]) #pragma acc parallel loop private(i, array[1], array, array[1:2]) for(int i = 0;i<5;++i); // CHECK: #pragma acc serial loop firstprivate(i, array[1], array, array[1:2]) #pragma acc serial loop firstprivate(i, array[1], array, array[1:2]) for(int i = 0;i<5;++i); }