Diagnostic 15126: vectorization support: unaligned access used inside loop body

Cause:

The loop contains one or more memory accesses for which the vectorizer could not safely use aligned load or store instructions, either because the data are not aligned to an n-byte boundary in memory, or because the compiler does not know the alignment. The value of n depends on the targeted instruction set and corresponds to the width of the vector instructions: 16 for Intel® SSE, 32 for Intel® AVX and 64 for Intel® AVX-512 instructions. In these cases, the vectorizer must use unaligned memory accesses, which may be less efficient. The vectorizer typically generates diagnostic 15134, "vectorization support: reference xxxx has unaligned access", for each individual unaligned memory access. The switch -vec-report6 must be set in order to obtain vectorizer diagnostics relating to data alignment.

Example:

See the example provided for Diagnostic 15134: vectorization support: reference xxxx has unaligned access (Fortran)

Resolution:

Ensure that data are aligned where possible, and that the compiler is informed of the alignment, as explained in the article Diagnostic 15134: vectorization support: reference xxxx has unaligned access (Fortran)

For more complete information about compiler optimizations, see our Optimization Notice.