summaryrefslogtreecommitdiffstats
path: root/clang/test/OpenMP/ordered_ast_print.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2015-12-18 05:05:56 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2015-12-18 05:05:56 +0000
commiteb48235033313f2a6afccbcd26788954c97a97b3 (patch)
tree8d085a5304caaf0c9e8ccab42e20f4c18452ca35 /clang/test/OpenMP/ordered_ast_print.cpp
parent125592dc8d483efb8ac2d6fb3710fcf356206ee0 (diff)
downloadbcm5719-llvm-eb48235033313f2a6afccbcd26788954c97a97b3.tar.gz
bcm5719-llvm-eb48235033313f2a6afccbcd26788954c97a97b3.zip
[OPENMP 4.5] Parsing/sema analysis for 'depend(source)' clause in 'ordered' directive.
OpenMP 4.5 adds 'depend(source)' clause for 'ordered' directive to support cross-iteration dependence. Patch adds parsing and semantic analysis for this construct. llvm-svn: 255986
Diffstat (limited to 'clang/test/OpenMP/ordered_ast_print.cpp')
-rw-r--r--clang/test/OpenMP/ordered_ast_print.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/clang/test/OpenMP/ordered_ast_print.cpp b/clang/test/OpenMP/ordered_ast_print.cpp
index 6328ec0d766..1c68540db67 100644
--- a/clang/test/OpenMP/ordered_ast_print.cpp
+++ b/clang/test/OpenMP/ordered_ast_print.cpp
@@ -42,6 +42,11 @@ T tmain (T argc) {
{
a=2;
}
+ #pragma omp parallel for ordered(1)
+ for (int i =0 ; i < argc; ++i) {
+ #pragma omp ordered depend(source)
+ a = 2;
+ }
return (0);
}
@@ -76,7 +81,11 @@ T tmain (T argc) {
// CHECK-NEXT: {
// CHECK-NEXT: a = 2;
// CHECK-NEXT: }
-
+// CHECK-NEXT: #pragma omp parallel for ordered(1)
+// CHECK-NEXT: for (int i = 0; i < argc; ++i) {
+// CHECK-NEXT: #pragma omp ordered depend(source)
+// CHECK-NEXT: a = 2;
+// CHECK-NEXT: }
// CHECK: static T a;
// CHECK-NEXT: #pragma omp for ordered
// CHECK-NEXT: for (int i = 0; i < argc; ++i)
@@ -108,7 +117,13 @@ T tmain (T argc) {
// CHECK-NEXT: {
// CHECK-NEXT: a = 2;
// CHECK-NEXT: }
+// CHECK-NEXT: #pragma omp parallel for ordered(1)
+// CHECK-NEXT: for (int i = 0; i < argc; ++i) {
+// CHECK-NEXT: #pragma omp ordered depend(source)
+// CHECK-NEXT: a = 2;
+// CHECK-NEXT: }
+// CHECK-LABEL: int main(
int main (int argc, char **argv) {
int b = argc, c, d, e, f, g;
static int a;
@@ -143,6 +158,11 @@ int main (int argc, char **argv) {
{
a=2;
}
+ #pragma omp parallel for ordered(1)
+ for (int i =0 ; i < argc; ++i) {
+ #pragma omp ordered depend(source)
+ a = 2;
+ }
// CHECK-NEXT: #pragma omp for ordered
// CHECK-NEXT: for (int i = 0; i < argc; ++i)
// CHECK-NEXT: #pragma omp ordered
@@ -173,6 +193,11 @@ int main (int argc, char **argv) {
// CHECK-NEXT: {
// CHECK-NEXT: a = 2;
// CHECK-NEXT: }
+// CHECK-NEXT: #pragma omp parallel for ordered(1)
+// CHECK-NEXT: for (int i = 0; i < argc; ++i) {
+// CHECK-NEXT: #pragma omp ordered depend(source)
+// CHECK-NEXT: a = 2;
+// CHECK-NEXT: }
return tmain(argc);
}
OpenPOWER on IntegriCloud