summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaOpenMP.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-12-16 11:16:46 -0500
committerAlexey Bataev <a.bataev@hotmail.com>2019-12-16 13:20:57 -0500
commit411e81a4e391d9e8195e4b2a0a62bc60582e298a (patch)
tree2e12f58a63e576eb48f514a84395f37316e622a2 /clang/lib/Sema/SemaOpenMP.cpp
parent00ffa744f978da119a759f144c58e83365e4e170 (diff)
downloadbcm5719-llvm-411e81a4e391d9e8195e4b2a0a62bc60582e298a.tar.gz
bcm5719-llvm-411e81a4e391d9e8195e4b2a0a62bc60582e298a.zip
[OPENMP50]Add if clause in target teams idistribute simd directive.
According to OpenMP 5.0, if clause can be used in for simd directive. If condition in the if clause if false, the non-vectorized version of the loop must be executed.
Diffstat (limited to 'clang/lib/Sema/SemaOpenMP.cpp')
-rw-r--r--clang/lib/Sema/SemaOpenMP.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 9033997afff..afe0f1a0dcd 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -4785,6 +4785,8 @@ StmtResult Sema::ActOnOpenMPExecutableDirective(
Res = ActOnOpenMPTargetTeamsDistributeSimdDirective(
ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
AllowedNameModifiers.push_back(OMPD_target);
+ if (LangOpts.OpenMP >= 50)
+ AllowedNameModifiers.push_back(OMPD_simd);
break;
case OMPD_declare_target:
case OMPD_end_declare_target:
@@ -10832,6 +10834,7 @@ static OpenMPDirectiveKind getOpenMPCaptureRegionForClause(
CaptureRegion = OMPD_target;
break;
case OMPD_teams_distribute_simd:
+ case OMPD_target_teams_distribute_simd:
if (OpenMPVersion >= 50 &&
(NameModifier == OMPD_unknown || NameModifier == OMPD_simd))
CaptureRegion = OMPD_teams;
@@ -10844,7 +10847,6 @@ static OpenMPDirectiveKind getOpenMPCaptureRegionForClause(
case OMPD_target:
case OMPD_target_teams:
case OMPD_target_teams_distribute:
- case OMPD_target_teams_distribute_simd:
case OMPD_distribute_parallel_for:
case OMPD_task:
case OMPD_taskloop:
OpenPOWER on IntegriCloud