# Intel-Specific Pragma Reference

Pragmas specific to the Intel® C++ Compiler Classic are listed in the following table.

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
--- | ---
alloc_section | Allocates one or more variables in the specified section. Controls section attribute specification for variables.
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.
code_align | Specifies the byte alignment for a loop
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.
intel omp task | For Intel legacy tasking, specifies a unit of work, potentially executed by a different thread.
intel omp taskq | For Intel legacy tasking, specifies an environment for the while loop in which to queue the units of work specified by the enclosed `task` pragma.
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 simd early_exit | Extends #pragma omp simd, allowing vectorization of multiple exit loops.
optimization_level | Controls optimization for one function or all functions after its first occurrence.
optimization_parameter | Passes certain information about a function to the optimizer.
optimize | Enables or disables optimizations for code after this pragma until another optimize pragma or end of the translation unit.
parallel/noparallel | Resolves dependencies to facilitate auto-parallelization of the immediately following loop (parallel) or prevents auto-parallelization of the immediately following loop (noparallel).
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).
simd | Enforces vectorization of loops.
simdoff | Specifies a block of code in the SIMD loop or SIMD-enabled function that should be executed serially, in a logical order of SIMD lanes.
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.
unused | Describes variables that are unused (warnings not generated).
vector | Tells the compiler that the loop should be vectorized according to the argument keywords.

Parent topic: Pragmas

- alloc_section
  Allocates one or more variables in the specified section. Controls section attribute specification for variables.
- 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.
- code_align
  Specifies the byte alignment for a loop
- 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.
- intel omp task
  For Intel legacy tasking, specifies a unit of work, potentially executed by a different thread.
- intel omp taskq
  For Intel legacy tasking, specifies an environment for the while loop in which to queue the units of work specified by the enclosed `task` pragma.
- 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 simd early_exit
  Extends #pragma omp simd, allowing vectorization of multiple exit loops.
- optimize
  Enables or disables optimizations for code after this pragma until another optimize pragma or end of the translation unit.
- optimization_level
  Controls optimization for one function or all functions after its first occurrence.
- optimization_parameter
  Passes certain information about a function to the optimizer.
- parallel/noparallel
  Resolves dependencies to facilitate auto-parallelization of the immediately following loop (parallel) or prevents auto-parallelization of the immediately following loop (noparallel).
- 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).
- simd
  Enforces vectorization of loops.
- simdoff
  Specifies a block of code in the SIMD loop or SIMD-enabled function that should be executed serially, in a logical order of SIMD lanes.
- 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.
- unused
  Describes variables that are unused (warnings not generated).
- vector
  Tells the compiler that the loop should be vectorized according to the argument keywords.