[OPENMP50]Add support for relaxed clause in atomic directive.

Added full support for relaxed clause.
diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp
index bc71c27..1691464 100644
--- a/clang/lib/CodeGen/CGStmtOpenMP.cpp
+++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp
@@ -4494,6 +4494,7 @@
   case OMPC_acq_rel:
   case OMPC_acquire:
   case OMPC_release:
+  case OMPC_relaxed:
   case OMPC_shared:
   case OMPC_linear:
   case OMPC_aligned:
@@ -4549,14 +4550,17 @@
     AO = llvm::AtomicOrdering::Acquire;
   else if (S.getSingleClause<OMPReleaseClause>())
     AO = llvm::AtomicOrdering::Release;
+  else if (S.getSingleClause<OMPRelaxedClause>())
+    AO = llvm::AtomicOrdering::Monotonic;
   OpenMPClauseKind Kind = OMPC_unknown;
   for (const OMPClause *C : S.clauses()) {
-    // Find first clause (skip seq_cst|acq_rel|aqcuire|release clause, if it is
-    // first).
+    // Find first clause (skip seq_cst|acq_rel|aqcuire|release|relaxed clause,
+    // if it is first).
     if (C->getClauseKind() != OMPC_seq_cst &&
         C->getClauseKind() != OMPC_acq_rel &&
         C->getClauseKind() != OMPC_acquire &&
-        C->getClauseKind() != OMPC_release) {
+        C->getClauseKind() != OMPC_release &&
+        C->getClauseKind() != OMPC_relaxed) {
       Kind = C->getClauseKind();
       break;
     }