Merge topic 'disable_vectorization_on_icc_14'

8818cfc6 Disable vectorization when building with ICC 14.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !362
This commit is contained in:
Robert Maynard 2016-03-16 15:27:08 -04:00 committed by Kitware Robot
commit 7daa6668e8
2 changed files with 10 additions and 1 deletions

@ -116,6 +116,11 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(avx2_flags -xCORE-AVX2)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
message(STATUS "While Intel ICC 14.0 and lower support #pragma simd")
message(STATUS "The code that is generated in testing has caused SIGBUS")
message(STATUS "runtime signals to be thrown. We recommend you upgrade")
message(STATUS "or disable vectorization.")
elseif (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
list(APPEND vec_levels avx avx2)
else()
list(APPEND vec_levels avx avx2 avx512 knl)

@ -170,8 +170,12 @@
//Determine if current compiler supports vectorization pragma's
//if so set the define VTKM_COMPILER_SUPPORTS_VECTOR_PRAGMAS
//
//While ICC 14 does support simd pragma, in testing we find that the
//simd code produces SIGBUS and isn't safe to use.
//
#if ( defined(VTKM_GCC) && ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9) ) ) || \
( defined(VTKM_ICC) && (__INTEL_COMPILER >= 1400) ) || \
( defined(VTKM_ICC) && (__INTEL_COMPILER >= 1500) ) || \
( defined(VTKM_CLANG) && defined(__apple_build_version__) && (__apple_build_version__ >= 7000000) ) || \
( defined(VTKM_CLANG) && !defined(__apple_build_version__) && (__clang_major__ > 3) ) || \
( defined(VTKM_CLANG) && !defined(__apple_build_version__) && (__clang_major__ == 3 && __clang_minor__ >= 5) )