|
1 | 1 | # Lowering of SYCL ESIMD kernels depends on vc-intrinsics
|
2 | 2 | # NOTE: could have been added earlier from llvm/projects
|
3 | 3 | if (NOT TARGET LLVMGenXIntrinsics)
|
4 |
| - if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
5 |
| - set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git) |
6 |
| - |
7 |
| - # Date: Mar 7, 2025 |
8 |
| - # Update Triple usage after 979c275097 |
9 |
| - set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52) |
10 |
| - |
11 |
| - message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}") |
12 |
| - include(FetchContent) |
13 |
| - FetchContent_Declare(vc-intrinsics |
14 |
| - GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO} |
15 |
| - GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG} |
16 |
| - ) |
17 |
| - FetchContent_MakeAvailable(vc-intrinsics) |
18 |
| - FetchContent_GetProperties(vc-intrinsics) |
19 |
| - |
20 |
| - set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR}) |
21 |
| - set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR}) |
22 |
| - else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
23 |
| - # -DLLVMGenXIntrinsics_SOURCE_DIR is provided |
24 |
| - message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}") |
25 |
| - |
26 |
| - set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build) |
27 |
| - add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR}) |
28 |
| - endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
29 |
| - |
30 |
| - target_include_directories(LLVMGenXIntrinsics |
31 |
| - PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include> |
32 |
| - PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include> |
| 4 | + find_package(LLVMGenXIntrinsics QUIET) |
| 5 | + |
| 6 | + if (NOT LLVMGenXIntrinsics_FOUND) |
| 7 | + if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
| 8 | + find_path(LLVMGenXIntrinsics_INCLUDE_DIR GenXIntrinsics/include PATHS ${CMAKE_PREFIX_PATH}) |
| 9 | + |
| 10 | + if (NOT LLVMGenXIntrinsics_INCLUDE_DIR) |
| 11 | + set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git) |
| 12 | + |
| 13 | + # Date: Mar 7, 2025 |
| 14 | + # Update Triple usage after 979c275097 |
| 15 | + set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52) |
| 16 | + |
| 17 | + message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}") |
| 18 | + include(FetchContent) |
| 19 | + FetchContent_Declare(vc-intrinsics |
| 20 | + GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO} |
| 21 | + GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG} |
| 22 | + ) |
| 23 | + FetchContent_MakeAvailable(vc-intrinsics) |
| 24 | + FetchContent_GetProperties(vc-intrinsics) |
| 25 | + |
| 26 | + set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR}) |
| 27 | + set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR}) |
| 28 | + else() |
| 29 | + message(STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR}") |
| 30 | + set(LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR}/..) |
| 31 | + set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build) |
| 32 | + add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR}) |
| 33 | + endif() |
| 34 | + else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
| 35 | + # -DLLVMGenXIntrinsics_SOURCE_DIR is provided |
| 36 | + message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}") |
| 37 | + |
| 38 | + set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build) |
| 39 | + add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR}) |
| 40 | + endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
| 41 | + target_include_directories(LLVMGenXIntrinsics |
| 42 | + PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include> |
| 43 | + PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include> |
33 | 44 | )
|
| 45 | + endif() |
| 46 | + |
34 | 47 | endif (NOT TARGET LLVMGenXIntrinsics)
|
35 | 48 |
|
36 | 49 | set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})
|
|
0 commit comments