SHA256
1
0
forked from pool/pocl

Compare commits

9 Commits

Author SHA256 Message Date
003c389e33 Accepting request 1281194 from science
OBS-URL: https://build.opensuse.org/request/show/1281194
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pocl?expand=0&rev=36
2025-05-30 12:38:31 +00:00
642c3fac29 - Drop the _service file
- Use Source Urls instead of obs_scm
- Add option to build with the vulkan experimental device
- Build with level0 experimental device
- Update to version 7.0:
  * PoCL received the official OpenCL 3.0 conformance stamp with the
    CPU (x86-64) and Level Zero drivers.
  * Support for LLVM versions 19 and 20
  * Support for dynamic device addition and network discovery.
    This new feature allows discovery of remote servers located in
    LAN or WAN environments and enables runtime addition of
    discovered devices to the remote client's platform. Network
    discovery is performed thorugh mDNS, unicast-DNS-SD, and
    DHT-based mechanisms, using Avahi and OpenDHT libraries.
  * New experimental support for Defined Built-in Kernels (DBK) has
    been added to the CPU drivers
  * The old "work-item replication" work-group function generation
    method was removed to clean up the kernel compiler.
  * Full changes at
    /usr/share/doc/packages/pocl/notes_7_0.rst

OBS-URL: https://build.opensuse.org/package/show/science/pocl?expand=0&rev=86
2025-05-29 18:17:50 +00:00
3bf7a6020d Accepting request 1243985 from science
OBS-URL: https://build.opensuse.org/request/show/1243985
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pocl?expand=0&rev=35
2025-02-07 21:57:38 +00:00
Martin Hauke
b417418a58 - Disable SPIR-V Support on Leap 15.x (missing llvm-spirv)
OBS-URL: https://build.opensuse.org/package/show/science/pocl?expand=0&rev=84
2025-02-06 18:50:40 +00:00
ba0ead88e5 OBS-URL: https://build.opensuse.org/package/show/science/pocl?expand=0&rev=83 2025-02-04 06:20:17 +00:00
b367ab0004 OBS-URL: https://build.opensuse.org/package/show/science/pocl?expand=0&rev=82 2025-02-04 05:58:10 +00:00
7b50d0199c - Disable SPIR-V Support on Leap (missing llvm-spirv)
- Enable CPU TBB driver

OBS-URL: https://build.opensuse.org/package/show/science/pocl?expand=0&rev=81
2025-02-04 05:57:07 +00:00
491c11a2a9 Accepting request 1233665 from science
OBS-URL: https://build.opensuse.org/request/show/1233665
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pocl?expand=0&rev=34
2024-12-30 11:51:29 +00:00
Martin Hauke
02c1ed5486 - Use _service file to create tarball from git
- Enable SPIR-V support
- Remove pocl-llvm16.patch
- Remove link_against_libclang-cpp_so.patch
- Update to version 6.0:
- Update to version 5.0:
- Update to version 4.0:

OBS-URL: https://build.opensuse.org/package/show/science/pocl?expand=0&rev=79
2024-12-28 07:50:40 +00:00
7 changed files with 181 additions and 253 deletions

View File

@@ -1,13 +0,0 @@
diff --git a/cmake/LLVM.cmake b/cmake/LLVM.cmake
index 2827d64..e186bc1 100644
--- a/cmake/LLVM.cmake
+++ b/cmake/LLVM.cmake
@@ -239,7 +239,7 @@ string(STRIP "${LLVM_SYSLIBS}" LLVM_SYSLIBS)
####################################################################
# llvm-config does not include clang libs
-if((9 LESS LLVM_MAJOR) AND (NOT STATIC_LLVM))
+if((8 LESS LLVM_MAJOR) AND (NOT STATIC_LLVM))
# For Clang 10+, link against a single shared library instead of multiple component shared
# libraries.
if("${LLVM_LIBNAMES}" MATCHES "LLVMTCE")

2
maint.README Normal file
View File

@@ -0,0 +1,2 @@
By default POCL uses the TBB backend. If libpocl-devices-tbb is not installed, the OpenCL runtime will not be able to find any devices.
To force POCl to use the CPU backend, set the environment variable POCL_DEVICES=cpu.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:82314362552e050aff417318dd623b18cf0f1d0f84f92d10a7e3750dd12d3a9a
size 1928607

3
pocl-7.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f55caba8c3ce12bec7b683ce55104c7555e19457fc2ac72c6f035201e362be08
size 3766036

View File

@@ -1,203 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8c8741b6..85de3968 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -520,7 +520,7 @@ if(ENABLE_LLVM)
# of the code, since this macro adds another layer of complexity.
if(LLVM_VERSION VERSION_LESS_EQUAL 14.0)
set(ENABLE_LLVM_OPAQUE_POINTERS OFF CACHE INTERNAL "llvm opaque pointers" FORCE)
- elseif(LLVM_VERSION VERSION_EQUAL 15.0)
+ elseif(LLVM_VERSION VERSION_EQUAL 15.0 OR LLVM_VERSION VERSION_EQUAL 16.0)
option(ENABLE_LLVM_OPAQUE_POINTERS "Handle the change to llvm opaque pointers." ON)
else()
set(ENABLE_LLVM_OPAQUE_POINTERS ON CACHE INTERNAL "llvm opaque pointers" FORCE)
diff --git a/cmake/LLVM.cmake b/cmake/LLVM.cmake
index 18138f36..00ad2186 100644
--- a/cmake/LLVM.cmake
+++ b/cmake/LLVM.cmake
@@ -122,8 +122,10 @@ string(REPLACE "${LLVM_PREFIX}" "${LLVM_PREFIX_CMAKE}" LLVM_LIBDIR "${LLVM_LIBDI
run_llvm_config(LLVM_INCLUDEDIR --includedir)
string(REPLACE "${LLVM_PREFIX}" "${LLVM_PREFIX_CMAKE}" LLVM_INCLUDEDIR "${LLVM_INCLUDEDIR}")
-run_llvm_config(LLVM_SRC_ROOT --src-root)
-run_llvm_config(LLVM_OBJ_ROOT --obj-root)
+if(LLVM_VERSION_MAJOR LESS 16)
+ run_llvm_config(LLVM_SRC_ROOT --src-root)
+ run_llvm_config(LLVM_OBJ_ROOT --obj-root)
+endif()
string(REPLACE "${LLVM_PREFIX}" "${LLVM_PREFIX_CMAKE}" LLVM_OBJ_ROOT "${LLVM_OBJ_ROOT}")
run_llvm_config(LLVM_ALL_TARGETS --targets-built)
run_llvm_config(LLVM_HOST_TARGET --host-target)
@@ -772,12 +774,35 @@ endif()
####################################################################
-if(ENABLE_HOST_CPU_DEVICES AND NOT DEFINED ${CL_DISABLE_HALF})
- set(CL_DISABLE_HALF 0)
- message(STATUS "Checking fp16 support")
- custom_try_compile_clang_silent("__fp16 callfp16(__fp16 a) { return a * (__fp16)1.8; };" "__fp16 x=callfp16((__fp16)argc);" RESV ${CLANG_TARGET_OPTION}${LLC_TRIPLE} ${CLANG_MARCH_FLAG}${LLC_HOST_CPU})
- if(RESV)
+# Clang documentation on Language Extensions:
+# __fp16 is supported on every target, as it is purely a storage format
+# _Float16 is currently only supported on the following targets... SPIR, x86
+# DIsabled for non-x86-64 because of limitations:
+# The _Float16 type requires SSE2 feature and above due to the instruction
+# limitations. When using it on i386 targets, you need to specify -msse2
+# explicitly.
+# For targets without F16C feature or above, please make sure:
+# Use GCC 12.0 and above if you are using libgcc.
+# If you are using compiler-rt, use the same version with the compiler.
+# Early versions provided FP16 builtins in a different ABI. A workaround is
+# to use a small code snippet to check the ABI if you cannot make sure of it.
+
+if(ENABLE_HOST_CPU_DEVICES AND NOT DEFINED CL_DISABLE_HALF)
+ # LLVM <15 doesn't support FP16 emulation
+ # LLVM 15 crashes on some code, with the FP16 emulation
+ # CONFORMANCE disables FP16 b/c it's incomplete
+ # enabled on x86-64 only for now
+ if((LLVM_VERSION_MAJOR LESS 16) OR ENABLE_CONFORMANCE OR (NOT X86_64))
+ message(STATUS "FP16 support disabled")
set(CL_DISABLE_HALF 1)
+ else()
+ set(CL_DISABLE_HALF 0)
+ message(STATUS "Checking fp16 support")
+ custom_try_compile_clang_silent("_Float16 callfp16(_Float16 a) { return a * 1.8f16; };" "_Float16 x=callfp16((_Float16)argc);"
+ RESV ${CLANG_TARGET_OPTION}${LLC_TRIPLE} ${CLANG_MARCH_FLAG}${LLC_HOST_CPU})
+ if(RESV)
+ set(CL_DISABLE_HALF 1)
+ endif()
endif()
endif()
diff --git a/cmake/bitcode_rules.cmake b/cmake/bitcode_rules.cmake
index 3d1a373f..10a309c2 100644
--- a/cmake/bitcode_rules.cmake
+++ b/cmake/bitcode_rules.cmake
@@ -167,7 +167,7 @@ function(compile_ll_to_bc FILENAME SUBDIR BCLIST)
list(APPEND ${BCLIST} "${BC_FILE}")
set(${BCLIST} ${${BCLIST}} PARENT_SCOPE)
- if(LLVM_VERSION VERSION_EQUAL 15.0)
+ if(LLVM_VERSION VERSION_EQUAL 15.0 OR LLVM_VERSION VERSION_EQUAL 16.0)
# both of these are necesssary. some of the files (like barrier.ll)
# don't contain any pointers and thus cannot be guessed; if llvm-as
# produces the wrong opaque-type file, later llvm-link will fail
diff --git a/include/_kernel_c.h b/include/_kernel_c.h
index e1038ea5..73ad9d18 100644
--- a/include/_kernel_c.h
+++ b/include/_kernel_c.h
@@ -112,7 +112,7 @@ typedef uint uint16 __attribute__((__ext_vector_type__(16)));
/* NOTE: the Clang's __fp16 does not work robustly in C mode,
it might produce invalid code at least with half vectors.
Using the native 'half' type in OpenCL C mode works better. */
-typedef __fp16 half;
+typedef _Float16 half;
typedef half half2 __attribute__((__ext_vector_type__(2)));
typedef half half3 __attribute__((__ext_vector_type__(3)));
diff --git a/lib/CL/pocl_llvm_build.cc b/lib/CL/pocl_llvm_build.cc
index 3ef6e0c5..84413a48 100644
--- a/lib/CL/pocl_llvm_build.cc
+++ b/lib/CL/pocl_llvm_build.cc
@@ -263,7 +263,7 @@ int pocl_llvm_build_program(cl_program program,
size_t fastmath_flag = user_options.find("-cl-fast-relaxed-math");
-#if (CLANG_MAJOR == 15)
+#if (CLANG_MAJOR == 15) || (CLANG_MAJOR == 16)
#ifdef LLVM_OPAQUE_POINTERS
ss << "-opaque-pointers ";
#else
diff --git a/lib/CL/pocl_llvm_utils.cc b/lib/CL/pocl_llvm_utils.cc
index 3cc7fcc5..0690af17 100644
--- a/lib/CL/pocl_llvm_utils.cc
+++ b/lib/CL/pocl_llvm_utils.cc
@@ -273,7 +273,9 @@ void InitializeLLVM() {
initializeAnalysis(Registry);
initializeTransformUtils(Registry);
initializeInstCombine(Registry);
+#ifdef LLVM_OLDER_THAN_16_0
initializeInstrumentation(Registry);
+#endif
initializeTarget(Registry);
}
@@ -390,7 +392,7 @@ void pocl_llvm_create_context(cl_context ctx) {
data->Context = new llvm::LLVMContext();
assert(data->Context);
-#if (CLANG_MAJOR == 15)
+#if (CLANG_MAJOR == 15) || (CLANG_MAJOR == 16)
#ifdef LLVM_OPAQUE_POINTERS
data->Context->setOpaquePointers(true);
#else
diff --git a/lib/llvmopencl/BarrierTailReplication.cc b/lib/llvmopencl/BarrierTailReplication.cc
index 98bc0635..43802f73 100644
--- a/lib/llvmopencl/BarrierTailReplication.cc
+++ b/lib/llvmopencl/BarrierTailReplication.cc
@@ -352,7 +352,11 @@ BarrierTailReplication::ReplicateBasicBlocks(BasicBlockVector &new_graph,
i2 != e2; ++i2) {
Instruction *i = i2->clone();
reference_map.insert(std::make_pair(&*i2, i));
+#ifdef LLVM_OLDER_THAN_16_0
new_b->getInstList().push_back(i);
+#else
+ i->insertInto(new_b, new_b->end());
+#endif
}
// Add predicates to PHINodes of basic blocks the replicated
diff --git a/lib/llvmopencl/ParallelRegion.cc b/lib/llvmopencl/ParallelRegion.cc
index dfe56e03..639bd686 100644
--- a/lib/llvmopencl/ParallelRegion.cc
+++ b/lib/llvmopencl/ParallelRegion.cc
@@ -201,12 +201,17 @@ ParallelRegion::chainAfter(ParallelRegion *region)
#endif
BasicBlock *successor = t->getSuccessor(0);
- Function::BasicBlockListType &bb_list =
- successor->getParent()->getBasicBlockList();
-
- for (iterator i = begin(), e = end(); i != e; ++i)
+ Function *F = successor->getParent();
+#ifdef LLVM_OLDER_THAN_16_0
+ Function::BasicBlockListType &bb_list =
+ F->getBasicBlockList();
+ for (iterator i = begin(), e = end(); i != e; ++i)
bb_list.insertAfter(tail->getIterator(), *i);
+#else
+ for (iterator i = begin(), e = end(); i != e; ++i)
+ F->insert(tail->getIterator(), *i);
+#endif
t->setSuccessor(0, entryBB());
t = exitBB()->getTerminator();
diff --git a/lib/llvmopencl/WorkItemAliasAnalysis.cc b/lib/llvmopencl/WorkItemAliasAnalysis.cc
index 02dcd2ec..8a85b25a 100644
--- a/lib/llvmopencl/WorkItemAliasAnalysis.cc
+++ b/lib/llvmopencl/WorkItemAliasAnalysis.cc
@@ -51,6 +51,12 @@ using namespace llvm;
typedef llvm::MemoryLocation Location;
typedef llvm::AliasResult AliasResult;
+#ifdef LLVM_OLDER_THAN_16_0
+#define AAResultB AAResultBase<WorkItemAAResult>
+#else
+#define AAResultB AAResultBase
+#endif
+
/// WorkItemAliasAnalysis - This is a simple alias analysis
/// implementation that uses pocl metadata to make sure memory accesses from
/// different work items are not aliasing.
@@ -58,8 +64,8 @@ typedef llvm::AliasResult AliasResult;
// LLVM 3.8+
-class WorkItemAAResult : public AAResultBase<WorkItemAAResult> {
- friend AAResultBase<WorkItemAAResult>;
+class WorkItemAAResult : public AAResultB {
+ friend AAResultB;
public:
static char ID;

View File

@@ -1,3 +1,68 @@
-------------------------------------------------------------------
Thu May 22 15:18:21 UTC 2025 - Eyad Issa <eyadlorenzo@gmail.com>
- Drop the _service file
- Use Source Urls instead of obs_scm
- Add option to build with the vulkan experimental device
- Build with level0 experimental device
- Update to version 7.0:
* PoCL received the official OpenCL 3.0 conformance stamp with the
CPU (x86-64) and Level Zero drivers.
* Support for LLVM versions 19 and 20
* Support for dynamic device addition and network discovery.
This new feature allows discovery of remote servers located in
LAN or WAN environments and enables runtime addition of
discovered devices to the remote client's platform. Network
discovery is performed thorugh mDNS, unicast-DNS-SD, and
DHT-based mechanisms, using Avahi and OpenDHT libraries.
* New experimental support for Defined Built-in Kernels (DBK) has
been added to the CPU drivers
* The old "work-item replication" work-group function generation
method was removed to clean up the kernel compiler.
* Full changes at
/usr/share/doc/packages/pocl/notes_7_0.rst
-------------------------------------------------------------------
Mon Jan 6 13:30:37 UTC 2025 - Eyad Issa <eyadlorenzo@gmail.com>
- Disable SPIR-V Support on Leap 15.x (missing llvm-spirv)
- Enable CPU TBB driver
- Add note for users/packagers in maint.README.
-------------------------------------------------------------------
Sat Dec 28 01:52:48 UTC 2024 - Eyad Issa <eyadlorenzo@gmail.com>
- Use _service file to create tarball from git
- Enable SPIR-V support
- Remove pocl-llvm16.patch
- Remove link_against_libclang-cpp_so.patch
- Update to version 6.0:
* New CPU driver which uses Threading Building Blocks for
task scheduling
* Experimental cl_ext_buffer_device_address prototype
* Multi-device command buffer infrastructure
* Command queue priority/throttle hints
* Support for using OpenMP for task scheduling in the
"cpu" driver
* Improvements to the Remote driver
* Improvements to the Level Zero driver
* Improvements to the CUDA driver
- Update to version 5.0:
* New backend: Remote
* CUDA driver: More OpenCL 3.0 features and extensions
implemented
* RISC-V CPU support improved
* Other CPU improvements
* Experimental built-in-kernel library based FPGA backend
- Update to version 4.0:
* Support for Clang/LLVM 16.0
* CPU driver improvements
* New Level Zero driver
-------------------------------------------------------------------
Thu Feb 29 14:57:59 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
@@ -445,4 +510,3 @@ Tue Oct 7 19:16:42 UTC 2014 - mardnh@gmx.de
- initial stable package, version 0.10
based on home:mnhauke:opencl:testing/pocl

118
pocl.spec
View File

@@ -1,7 +1,7 @@
#
# spec file for package pocl
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2014 Guillaume GARDET <guillaume@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
@@ -17,38 +17,65 @@
#
%define sover 2
%global sover 2
%if 0%{?suse_version} >= 1600
%bcond_without spirv
%else
%bcond_with spirv
%endif
%if 0%{?suse_version} >= 1600
%bcond_without ttb
%else
%bcond_with ttb
%endif
%if 0%{?suse_version} >= 1600
%bcond_without levelzero
%else
%bcond_with levelzero
%endif
%bcond_with vulkan
Name: pocl
Version: 3.1
Version: 7.0
Release: 0
Summary: Portable Computing Language - an OpenCL implementation
# The whole code is under MIT
# except include/utlist.h which is under BSD (and unbundled)
License: MIT
Group: Development/Tools/Other
URL: http://portablecl.org/
URL: https://portablecl.org/
Source0: https://github.com/pocl/pocl/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source98: maint.README
Source99: pocl-rpmlintrc
Patch0: link_against_libclang-cpp_so.patch
# PATCH-FIX-UPSTREAM - pocl-llvm16.patch - enables support for LLVM 16
# https://github.com/pocl/pocl/commit/20d1bfa9bfd301964f7b2fc6d7f4589dd04e1b5c
# https://github.com/pocl/pocl/commit/bf50f0052e4248cd1acfaaa8da95c5e4ca52f815
Patch1: pocl-llvm16.patch
BuildRequires: cmake
# Version 7.0: Supports LLVM versions 19 and 20
BuildRequires: ((clang-devel >= 19 with clang-devel < 21) or clang20-devel)
BuildRequires: cmake >= 3.15
BuildRequires: gcc-c++
BuildRequires: ninja
BuildRequires: ocl-icd-devel
BuildRequires: opencl-headers
BuildRequires: pkgconfig
%if 0%{?suse_version} <= 1500 && 0%{?sle_version} > 150500
BuildRequires: ((clang-devel >= 6.0.0 with clang-devel < 17) or clang15-devel)
%else
BuildRequires: ((clang-devel >= 6.0.0 with clang-devel < 17) or clang16-devel)
%endif
BuildRequires: pkgconfig(OpenCL)
BuildRequires: pkgconfig(hwloc)
BuildRequires: pkgconfig(ocl-icd)
# PPC has limited support/testing from upstream
# s390(x) is also not supported, so use ExclusiveArch
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 riscv64
%if %{with ttb}
BuildRequires: pkgconfig(tbb)
%endif
%if %{with spirv}
BuildRequires: libLLVMSPIRVLib-devel
BuildRequires: spirv-tools
%endif
%if %{with levelzero}
BuildRequires: pkgconfig(level-zero)
%endif
%if %{with vulkan}
BuildRequires: pkgconfig(vulkan)
%endif
%description
Portable Computing Language (pocl) is an implementation of the OpenCL standard
@@ -67,6 +94,7 @@ and multithread.
%package -n libpocl%{sover}
Summary: Shared Library part of pocl
Group: System/Libraries
Recommends: libpocl-devices-tbb = %{version}
%description -n libpocl%{sover}
Portable Computing Language (pocl) is an implementation of the OpenCL standard
@@ -75,6 +103,26 @@ heterogenous GPUs/accelerators.
This subpackage contains the shared library part of pocl.
%package -n libpocl-devices-tbb
Summary: TBB device for pocl
%description -n libpocl-devices-tbb
Portable Computing Language (pocl) is an implementation of the OpenCL standard
which can be adapted for new targets and devices, both for homogeneous CPU and
heterogenous GPUs/accelerators.
This subpackage contains the Thread Building Blocks (TBB) device for pocl.
%package -n libpocl-devices-levelzero
Summary: Level Zero device for pocl
%description -n libpocl-devices-levelzero
Portable Computing Language (pocl) is an implementation of the OpenCL standard
which can be adapted for new targets and devices, both for homogeneous CPU and
heterogenous GPUs/accelerators.
This subpackage contains the Level Zero device for pocl.
%package devel
Summary: Development files for the Portable Computing Language
Group: Development/Languages/Other
@@ -93,11 +141,31 @@ This subpackage provides the development files needed for pocl.
%autosetup -p1
%build
%define __builder ninja
%global __builder ninja
%cmake \
-DENABLE_CUDA=0 \
-DENABLE_ICD=ON \
-DPOCL_INSTALL_ICD_VENDORDIR=%{_datadir}/OpenCL/vendors \
-DENABLE_LLVM=ON \
-DWITH_LLVM_CONFIG=%{_bindir}/llvm-config \
-DENABLE_ICD=ON \
-DSTATIC_LLVM=OFF \
-DENABLE_REMOTE_DISCOVERY_AVAHI=ON \
-DENABLE_REMOTE_ADVERTISEMENT_AVAHI=ON \
-DENABLE_REMOTE_DISCOVERY_DHT=ON \
-DENABLE_REMOTE_ADVERTISEMENT_DHT=ON \
-DENABLE_CUDA=OFF \
-DINSTALL_OPENCL_HEADERS=OFF \
%if %{with spirv}
-DENABLE_SPIRV=ON \
%endif
%if %{with ttb}
-DENABLE_TBB_DEVICE=ON \
%endif
%if %{with levelzero}
-DENABLE_LEVEL0=ON \
%endif
%if %{with vulkan}
-DENABLE_VULKAN=ON \
%endif
%ifarch %{ix86} x86_64
-DKERNELLIB_HOST_CPU_VARIANTS=distro \
%endif
@@ -113,7 +181,7 @@ This subpackage provides the development files needed for pocl.
%if 0%{?suse_version} <= 1500 && 0%{?sle_version} <= 150300
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
%endif
-DWITH_LLVM_CONFIG=%{_bindir}/llvm-config
%{nil}
%cmake_build
@@ -142,4 +210,14 @@ This subpackage provides the development files needed for pocl.
%{_libdir}/libpocl.so
%{_libdir}/pkgconfig/pocl.pc
%if %{with ttb}
%files -n libpocl-devices-tbb
%{_libdir}/pocl/libpocl-devices-tbb.so
%endif
%if %{with levelzero}
%files -n libpocl-devices-levelzero
%{_libdir}/pocl/libpocl-devices-level0.so
%endif
%changelog