diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-12-16 11:16:46 -0500 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-12-16 13:20:57 -0500 |
commit | 411e81a4e391d9e8195e4b2a0a62bc60582e298a (patch) | |
tree | 2e12f58a63e576eb48f514a84395f37316e622a2 /clang/lib/Sema/SemaOpenMP.cpp | |
parent | 00ffa744f978da119a759f144c58e83365e4e170 (diff) | |
download | bcm5719-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.cpp | 4 |
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: |