[llvm] [libsycl] Add lit configuration files and basic test (PR #177407)
Dmitry Vodopyanov via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 10 05:11:55 PST 2026
================
@@ -0,0 +1,122 @@
+// REQUIRES: any-device
+// RUN: %clangxx %sycl_options %s -o %t.out
+// RUN: %t.out
+//
+// Tests platform::get_devices for each device type.
+
+#include <sycl.hpp>
+
+#include <algorithm>
+#include <iostream>
+
+std::string BackendToString(sycl::backend Backend) {
+ switch (Backend) {
+ case sycl::backend::opencl:
+ return "opencl";
+ case sycl::backend::level_zero:
+ return "level_zero";
+ case sycl::backend::cuda:
+ return "cuda";
+ case sycl::backend::hip:
+ return "hip";
+ default:
+ return "unknown";
+ }
+}
+
+std::string DeviceTypeToString(sycl::info::device_type DevType) {
+ switch (DevType) {
+ case sycl::info::device_type::all:
+ return "device_type::all";
+ case sycl::info::device_type::cpu:
+ return "device_type::cpu";
+ case sycl::info::device_type::gpu:
+ return "device_type::gpu";
+ case sycl::info::device_type::accelerator:
+ return "device_type::accelerator";
+ case sycl::info::device_type::custom:
+ return "device_type::custom";
+ case sycl::info::device_type::automatic:
+ return "device_type::automatic";
+ case sycl::info::device_type::host:
+ return "device_type::host";
+ default:
+ return "UNKNOWN";
+ }
+}
+
+std::string GenerateDeviceDescription(sycl::info::device_type DevType,
+ const sycl::platform &Platform) {
+ return std::string(DeviceTypeToString(DevType)) + " (" +
+ BackendToString(Platform.get_backend()) + ")";
+}
+
+template <typename T1, typename T2>
+int Check(const T1 &LHS, const T2 &RHS, std::string TestName) {
+ if (LHS != RHS) {
+ std::cerr << "Failed check " << LHS << " != " << RHS << ": " << TestName
+ << std::endl;
+ return 1;
+ }
+ return 0;
+}
+
+int CheckDeviceType(const sycl::platform &P, sycl::info::device_type DevType,
+ std::vector<sycl::device> &AllDevices) {
+ assert(DevType != sycl::info::device_type::all);
----------------
dm-vodopyanov wrote:
> // This check verifies data of device with specific device_type and if it is correctly chosen among all devices (device_type::all).
// Though there is no point to check device_type::all here.
Yeah, sounds good to me.
https://github.com/llvm/llvm-project/pull/177407
More information about the llvm-commits
mailing list