The following new features are available for ifx:
Preprocessor cmake macro __INTEL_LLVM_COMPILER
Is replaced by the version of the compiler in format VVVVMMUU. For more information on the macro and format, see Using Predefined Preprocessor Symbols.
Enhancement to the DECLARE VARIANT directive
You can now specify one or more architectures in the context-selector-specification for the directive. For more information, including what architecture values you can specify, see DECLARE VARIANT.
Intel-specific OpenMP* memory allocators
You can now specify additional predefined memory spaces that are Intel extensions to the OpenMP* standard. For more information, see OpenMP* Memory Spaces and Allocators.
TASK and DEFAULT OpenMP* reduction modifiers
You can now specify TASK and DEFAULT in REDUCTION clauses. For more information, see REDUCTION.
USE_DEVICE_ADDR clause
Indicates that list iems in the structured block of the construct are references to the device address of the item if the item has corresponding storage in the device data environment. For more information, see TARGET DATA.
Compiler options fiopenmp and Qiopenmp
Enables OpenMP* 4.5 support for Intel® Xeon® Scalable processors. For more information, see fiopenmp, Qiopenmp.
Compiler option fopenmp-targets and Qopenmp-targets
Enables OpenMP* 4.5 offloading support for Intel® GPUs. For more information, see fopenmp-targets, Qopenmp-targets.
ALLOCATE clause
Specifies the memory allocator to be used for one or more private variables or common blocks of a construct. For more information, see ALLOCATE Clause.
ALLOCATE directive
Specifies memory allocators to use for object allocation and deallocation. For more information, see ALLOCATE Directive.
DECLARE VARIANT directive
Identifies a variant of a base procedure and specifies the context in which this variant is used. For more information, see DECLARE VARIANT.
LOOP directive construct
Specifies that the iterations of the associated loops can execute concurrently. For more information, see LOOP.
ORDER (CONCURRENT) clause
Indicates that the iterations of the loop may execute in any order or simultaneously. For more information, see LOOP and DO Directive.
PARALLEL LOOP directive
Specifies a shortcut for indicating that a loop or loop nest can execute concurrently across multiple threads. For more information, see PARALLEL LOOP.
TARGET PARALLEL LOOP directive
Specifies a shortcut for specifying a parallel loop inside a TARGET construct that contains no other statements than the parallel loop. For more information, see TARGET PARALLEL LOOP.
TARGET TEAMS LOOP construct
Specifies a shortcut for specifying a TEAMS LOOP construct inside a TEAMS construct that contains no other statements. For more information, see TARGET TEAMS LOOP.
TEAMS LOOP construct
Specifies a shortcut for specifying a LOOP construct inside a TEAMS construct. For more information, see TEAMS LOOP.