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 Yes
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