Skip to content

ICC: Switch from 'pragma simd' to 'pragma ivdep'

For ICC we want ivdep over simd for the following reason: The compiler does not check for aliasing or dependencies that might cause incorrect results after vectorization, and it does not protect against illegal memory references. #pragma ivdep overrides potential dependencies, but the compiler still performs a dependency analysis, and will not vectorize if it finds a proven dependency that would affect results. With #pragma simd, the compiler does no such analysis, and tries to vectorize regardless.

Merge request reports