[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