Intel-Specific Pragma Reference

Pragmas specific to the Intel® oneAPI DPC++/C++ Compiler are listed in the following table.

Most Intel-specific pragmas support host code only unless otherwise noted.

Some pragmas are available for both Intel® microprocessors and non-Intel microprocessors, but may perform additional optimizations for Intel® microprocessors than for non-Intel microprocessors.

Pragma

Description

block_loop/noblock_loop

Enables or disables loop blocking for the immediately following nested loops. block_loop enables loop blocking for the nested loops. noblock_loop disables loop blocking for the nested loops.

distribute_point

Instructs the compiler to prefer loop distribution at the location indicated.

inline/noinline/forceinline

Specifies inlining of all calls in a statement. This also describes pragmas forceinline and noinline.

ivdep

Instructs the compiler to ignore assumed vector dependencies.

loop_count

Specifies the iterations for a for loop.

nofusion

Prevents a loop from fusing with adjacent loops.

novector

Specifies that a particular loop should never be vectorized.

omp target variant dispatch

Conditionally calls a procedure offload variant if the specified device is available; otherwise, executes the procedure on the host.

ompx prefetch data

Issues a prefetch to pre-load the data in the array sections specified.

prefetch/noprefetch

Invites the compiler to issue or disable requests to prefetch data from memory. This pragma applies only to Intel® Advanced Vector Extensions 512 (Intel® AVX-512).

unroll/nounroll

Tells the compiler to unroll or not to unroll a counted loop.

unroll_and_jam/nounroll_and_jam

Enables or disables loop unrolling and jamming. These pragmas can only be applied to iterative for loops.

vector

Tells the compiler that a loop should be vectorized according to the argument keywords.