- Instructs the compiler to override any efficiency heuristic during the decision to vectorize or not, and vectorize non-unit strides or very unaligned memory accesses; controls the vectorization of the subsequent loop in the program; optionally takes the keyword assert.
- Instructs the compiler to perform dynamic alignment optimization for the loop.
- Disables dynamic alignment optimization for the loop.
- Instructs the compiler to use non-temporal (that is, streaming) stores on systems based on all supported architectures, unless otherwise specified; optionally takes a comma-separated list of variables.When this pragma is specified, it is your responsibility to also insert any fences as required to ensure correct memory ordering within a thread or across threads. One typical way to do this is to insert a_mm_sfenceintrinsic call just after the loops (such as the initialization loop) where the compiler may insert streaming store instructions.
- Instructs the compiler to use temporal (that is, non-streaming) stores on systems based on all supported architectures, unless otherwise specified.
- Instructs the compiler to vectorize the remainder loop when the original loop is vectorized.
- Instructs the compiler not to vectorize the remainder loop when the original loop is vectorized.
- Instructs the vectorizer which vector length/factor to use when generating the main vector loop.