[OPENMP50]Add support for master taskloop simd.

Added  trsing/semantics/codegen for combined construct master taskloop simd.

llvm-svn: 375255
diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp
index 5276a97..91fe10e 100644
--- a/clang/lib/Parse/ParseOpenMP.cpp
+++ b/clang/lib/Parse/ParseOpenMP.cpp
@@ -138,6 +138,7 @@
       {OMPD_target_teams_distribute_parallel_for, OMPD_simd,
        OMPD_target_teams_distribute_parallel_for_simd},
       {OMPD_master, OMPD_taskloop, OMPD_master_taskloop},
+      {OMPD_master_taskloop, OMPD_simd, OMPD_master_taskloop_simd},
       {OMPD_parallel, OMPD_master, OMPD_parallel_master},
       {OMPD_parallel_master, OMPD_taskloop, OMPD_parallel_master_taskloop}};
   enum { CancellationPoint = 0, DeclareReduction = 1, TargetData = 2 };
@@ -1508,6 +1509,7 @@
   case OMPD_taskloop:
   case OMPD_taskloop_simd:
   case OMPD_master_taskloop:
+  case OMPD_master_taskloop_simd:
   case OMPD_parallel_master_taskloop:
   case OMPD_distribute:
   case OMPD_end_declare_target:
@@ -1564,16 +1566,16 @@
 ///         'barrier' | 'taskwait' | 'flush' | 'ordered' | 'atomic' |
 ///         'for simd' | 'parallel for simd' | 'target' | 'target data' |
 ///         'taskgroup' | 'teams' | 'taskloop' | 'taskloop simd' | 'master
-///         taskloop' | 'parallel master taskloop' | 'distribute' | 'target
-///         enter data' | 'target exit data' | 'target parallel' | 'target
-///         parallel for' | 'target update' | 'distribute parallel for' |
-///         'distribute paralle for simd' | 'distribute simd' | 'target parallel
-///         for simd' | 'target simd' | 'teams distribute' | 'teams distribute
-///         simd' | 'teams distribute parallel for simd' | 'teams distribute
-///         parallel for' | 'target teams' | 'target teams distribute' | 'target
-///         teams distribute parallel for' | 'target teams distribute parallel
-///         for simd' | 'target teams distribute simd' {clause}
-///         annot_pragma_openmp_end
+///         taskloop' | 'master taskloop simd' | 'parallel master taskloop' |
+///         'distribute' | 'target enter data' | 'target exit data' | 'target
+///         parallel' | 'target parallel for' | 'target update' | 'distribute
+///         parallel for' | 'distribute paralle for simd' | 'distribute simd' |
+///         'target parallel for simd' | 'target simd' | 'teams distribute' |
+///         'teams distribute simd' | 'teams distribute parallel for simd' |
+///         'teams distribute parallel for' | 'target teams' | 'target teams
+///         distribute' | 'target teams distribute parallel for' | 'target teams
+///         distribute parallel for simd' | 'target teams distribute simd'
+///         {clause} annot_pragma_openmp_end
 ///
 StmtResult
 Parser::ParseOpenMPDeclarativeOrExecutableDirective(ParsedStmtContext StmtCtx) {
@@ -1749,6 +1751,7 @@
   case OMPD_taskloop:
   case OMPD_taskloop_simd:
   case OMPD_master_taskloop:
+  case OMPD_master_taskloop_simd:
   case OMPD_parallel_master_taskloop:
   case OMPD_distribute:
   case OMPD_distribute_parallel_for: