Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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.

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 the loop should be vectorized according to the argument keywords.