@@ -56,6 +56,9 @@ macro(vc_determine_compiler)
56
56
if (Vc_ICC_VERSION VERSION_LESS 18.0.0 )
57
57
message (FATAL_ERROR "Vc 1.4 requires least ICC 18" )
58
58
endif ()
59
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM" )
60
+ set (Vc_COMPILER_IS_INTEL_LLVM true )
61
+ message (STATUS "Detected Compiler: IntelLLVM ${CMAKE_CXX_COMPILER_VERSION} " )
59
62
elseif (CMAKE_CXX_COMPILER MATCHES "(opencc|openCC)$" )
60
63
set (Vc_COMPILER_IS_OPEN64 true )
61
64
message (STATUS "Detected Compiler: Open64" )
@@ -316,6 +319,29 @@ int main() { return 0; }
316
319
vc_add_compiler_flag (Vc_COMPILE_FLAGS "-diag-disable 2928" )
317
320
endif ()
318
321
322
+ # Intel doesn't implement the XOP or FMA4 intrinsics
323
+ set (Vc_XOP_INTRINSICS_BROKEN true )
324
+ set (Vc_FMA4_INTRINSICS_BROKEN true )
325
+ elseif (Vc_COMPILER_IS_INTEL_LLVM )
326
+ ##################################################################################################
327
+ # Intel LLVM Compiler #
328
+ ##################################################################################################
329
+
330
+ if (_add_buildtype_flags )
331
+ set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3" )
332
+ set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG -O3" )
333
+ set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3" )
334
+ set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DNDEBUG -O3" )
335
+ endif ()
336
+ if (CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" )
337
+ set (ENABLE_STRICT_ALIASING true CACHE BOOL "Enables strict aliasing rules for more aggressive optimizations" )
338
+ if (ENABLE_STRICT_ALIASING )
339
+ AddCompilerFlag (-ansi-alias CXX_FLAGS Vc_COMPILE_FLAGS )
340
+ else ()
341
+ AddCompilerFlag (-no-ansi-alias CXX_FLAGS Vc_COMPILE_FLAGS )
342
+ endif ()
343
+ endif ()
344
+
319
345
# Intel doesn't implement the XOP or FMA4 intrinsics
320
346
set (Vc_XOP_INTRINSICS_BROKEN true )
321
347
set (Vc_FMA4_INTRINSICS_BROKEN true )
0 commit comments