OpenMP support in Arm C/C++ Compiler

The following tables describe which OpenMP features are supported by Arm C/C++ Compiler.

OpenMP 4.0 support

OpenMP 4.0 Feature Support
C/C++ Array Sections Yes
Thread affinity policies Yes
"simd" construct Yes
"declare simd" construct No
Device constructs No
Task dependencies Yes
"taskgroup" construct Yes
User defined reductions Yes
Atomic capture swap Yes
Atomic seq_cst Yes
Cancellation Yes
OMP_DISPLAY_ENV Yes

OpenMP 4.5 support

OpenMP 4.5 Feature Support
doacross loop nests with ordered Yes
"linear" clause on loop construct Yes
"simdlen" clause on simd construct Yes
Task priorities Yes
"taskloop" construct Yes
Extensions to device support No
"if" clause for combined constructs Yes
"hint" clause for critical construct Yes
"source" and "sink" dependence types Yes
C++ Reference types in data sharing attribute clauses Yes
Reductions on C/C++ array sections Yes
"ref", "val", "uval" modifiers for linear clause Yes
Thread affinity query functions Yes
Hints for lock API Yes