11# Lowering of SYCL ESIMD kernels depends on vc-intrinsics
22# NOTE: could have been added earlier from llvm/projects
33if (NOT TARGET LLVMGenXIntrinsics)
4- if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR AND NOT LLVMGenXIntrinsics_INCLUDE_DIR)
5- find_package (LLVMGenXIntrinsics QUIET )
6- endif ()
4+ find_package (LLVMGenXIntrinsics QUIET )
75
8- if (NOT LLVMGenXIntrinsics_FOUND)
9- if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
10- find_path (LLVMGenXIntrinsics_INCLUDE_DIR GenXIntrinsics/include PATHS ${CMAKE_PREFIX_PATH} )
6+ if (NOT LLVMGenXIntrinsics_FOUND)
7+ set (LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)
118
12- if (NOT LLVMGenXIntrinsics_INCLUDE_DIR)
13- set (LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)
14-
15- # Date: May 29, 2025
16- # Use OneNthEltsVecArgument instead of HalfVecArguments to fix build failure.
17- set (LLVMGenXIntrinsics_GIT_TAG 60cea7590bd022d95f5cf336ee765033bd114d69)
18-
19- message (STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO} " )
20- include (FetchContent)
21- FetchContent_Declare(vc-intrinsics
22- GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
23- GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
24- )
25- FetchContent_MakeAvailable(vc-intrinsics)
26- FetchContent_GetProperties(vc-intrinsics)
27-
28- set (LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR})
29- set (LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR })
30- else ()
31- message (STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR} " )
32- set (LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR} /..)
33- set (LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR} /vc-intrinsics-build )
34- add_subdirectory (${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR} )
35- endif ()
36- else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
37- # -DLLVMGenXIntrinsics_SOURCE_DIR is provided
38- message (STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR} " )
39-
40- set (LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR} /vc-intrinsics-build )
41- add_subdirectory (${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR} )
42- endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
43- target_include_directories (LLVMGenXIntrinsics
44- PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR} /GenXIntrinsics/include >
45- PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR} /GenXIntrinsics/include >
46- )
47- endif ()
9+ # Date: May 29, 2025
10+ # Use OneNthEltsVecArgument instead of HalfVecArguments to fix build failure.
11+ set (LLVMGenXIntrinsics_GIT_TAG 60cea7590bd022d95f5cf336ee765033bd114d69)
12+ if (NOT FETCHCONTENT_SOURCE_DIR_VC-INTRINSICS)
13+ message (STATUS "vc-intrinsics repo is missing. Will try to download "
14+ "${LLVMGenXIntrinsics_GIT_TAG} from ${LLVMGenXIntrinsics_GIT_REPO} " )
15+ endif ()
16+ include (FetchContent)
17+ FetchContent_Declare(vc-intrinsics
18+ GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
19+ GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
20+ )
21+ FetchContent_MakeAvailable(vc-intrinsics)
22+ FetchContent_GetProperties(vc-intrinsics)
23+ else ()
24+ message (STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_DIR} " )
25+ endif ()
4826endif (NOT TARGET LLVMGenXIntrinsics)
4927
5028add_llvm_component_library(LLVMSYCLLowerIR
@@ -88,8 +66,6 @@ add_llvm_component_library(LLVMSYCLLowerIR
8866
8967 ADDITIONAL_HEADER_DIRS
9068 ${LLVM_MAIN_INCLUDE_DIR} /llvm/SYCLLowerIR
91- ${LLVM_MAIN_SRC_DIR} /projects/vc-intrinsics/GenXIntrinsics/include
92- ${LLVM_BINARY_DIR} /projects/vc-intrinsics/GenXIntrinsics/include
9369
9470 DEPENDS
9571 intrinsics_gen
@@ -114,10 +90,6 @@ add_llvm_component_library(LLVMSYCLLowerIR
11490 ipo
11591 )
11692
117- target_include_directories (LLVMSYCLLowerIR
118- PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR} /GenXIntrinsics/include />
119- PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR} >
120- )
12193target_link_libraries (LLVMSYCLLowerIR
12294 PUBLIC LLVMGenXIntrinsics
12395 )
0 commit comments