diff --git a/common/cmake/dpcpp.cmake b/common/cmake/dpcpp.cmake index a15c179..4760e63 100644 --- a/common/cmake/dpcpp.cmake +++ b/common/cmake/dpcpp.cmake @@ -45,7 +45,7 @@ IF (EMBREE_SYCL_SUPPORT) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sycl") # makes dpcpp compiler compatible with clang++ - SET(CMAKE_CXX_FLAGS_SYCL "-fsycl -fsycl-unnamed-lambda -Xclang -fsycl-allow-func-ptr") + SET(CMAKE_CXX_FLAGS_SYCL "-fsycl -nolibsycl -fsycl-unnamed-lambda -Xclang -fsycl-allow-func-ptr") SET(CMAKE_CXX_FLAGS_SYCL "${CMAKE_CXX_FLAGS_SYCL} -Wno-mismatched-tags -Wno-pessimizing-move -Wno-reorder -Wno-unneeded-internal-declaration -Wno-delete-non-abstract-non-virtual-dtor -Wno-dangling-field -Wno-unknown-pragmas -Wno-logical-op-parentheses") IF (SYCL_ONEAPI_ICX AND WIN32) diff --git a/common/simd/arm/sse2neon.h b/common/simd/arm/sse2neon.h index b18d41e..35e50a6 100644 --- a/common/simd/arm/sse2neon.h +++ b/common/simd/arm/sse2neon.h @@ -9038,7 +9038,7 @@ FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) FORCE_INLINE int _sse2neon_clz(unsigned int x) { #if _MSC_VER - DWORD cnt = 0; + unsigned long cnt = 0; if (_BitScanForward(&cnt, x)) return cnt; return 32; @@ -9050,7 +9050,7 @@ FORCE_INLINE int _sse2neon_clz(unsigned int x) FORCE_INLINE int _sse2neon_ctz(unsigned int x) { #if _MSC_VER - DWORD cnt = 0; + unsigned long cnt = 0; if (_BitScanReverse(&cnt, x)) return 31 - cnt; return 32; diff --git a/kernels/CMakeLists.txt b/kernels/CMakeLists.txt index b827807..648603a 100644 --- a/kernels/CMakeLists.txt +++ b/kernels/CMakeLists.txt @@ -216,6 +216,12 @@ embree_files(EMBREE_LIBRARY_FILES_AVX512 ${AVX512}) #message("AVX2: ${EMBREE_LIBRARY_FILES_AVX2}") #message("AVX512: ${EMBREE_LIBRARY_FILES_AVX512}") +# Bundle Neon2x into the main static library. +IF(EMBREE_ISA_NEON2X AND EMBREE_STATIC_LIB) + LIST(APPEND EMBREE_LIBRARY_FILES ${EMBREE_LIBRARY_FILES_AVX2}) + LIST(REMOVE_DUPLICATES EMBREE_LIBRARY_FILES) +ENDIF() + # replaces all .cpp files with a dummy file that includes that .cpp file # this is to work around an ICC name mangling issue related to lambda functions under windows MACRO (CreateISADummyFiles list isa) @@ -318,7 +324,7 @@ IF (EMBREE_ISA_AVX AND EMBREE_LIBRARY_FILES_AVX) ENDIF() ENDIF() -IF (EMBREE_ISA_AVX2 AND EMBREE_LIBRARY_FILES_AVX2) +IF (EMBREE_ISA_AVX2 AND EMBREE_LIBRARY_FILES_AVX2 AND NOT (EMBREE_ISA_NEON2X AND EMBREE_STATIC_LIB)) DISABLE_STACK_PROTECTOR_FOR_INTERSECTORS(${EMBREE_LIBRARY_FILES_AVX2}) ADD_LIBRARY(embree_avx2 STATIC ${EMBREE_LIBRARY_FILES_AVX2}) TARGET_LINK_LIBRARIES(embree_avx2 PRIVATE tasking)