|
11 | 11 |
|
12 | 12 | // -- Test the kernel_compiler with SYCL source.
|
13 | 13 | // RUN: %{build} -o %t.out
|
14 |
| -// RUN: %{run} %t.out |
15 |
| -// RUN: %{l0_leak_check} %{run} %t.out |
| 14 | + |
| 15 | +// If clang++ is not on the PATH, or if sycl was compiled with GCC < 8, then |
| 16 | +// the kernel_compiler is not available for SYCL language. |
| 17 | +// Note: this 'invoking clang++' version for SYCL language support is temporary, |
| 18 | +// and will be replaced by the SYCL_JIT version soon. |
| 19 | +// DEFINE: %{available} = %t.out available |
| 20 | + |
| 21 | +// RUN: %if available %{ %{run} %t.out %} |
| 22 | +// RUN: %if available %{ %{l0_leak_check} %{run} %t.out %} |
16 | 23 |
|
17 | 24 | // -- Test again, with caching.
|
18 | 25 | // 'reading-from-cache' is just a string we pass to differentiate between the
|
19 | 26 | // two runs.
|
20 | 27 |
|
21 | 28 | // DEFINE: %{cache_vars} = %{l0_leak_check} env SYCL_CACHE_PERSISTENT=1 SYCL_CACHE_TRACE=5 SYCL_CACHE_DIR=%t/cache_dir
|
22 | 29 | // RUN: rm -rf %t/cache_dir
|
23 |
| -// RUN: %{cache_vars} %t.out 2>&1 | FileCheck %s --check-prefixes=CHECK-WRITTEN-TO-CACHE |
24 |
| -// RUN: %{cache_vars} %t.out reading-from-cache 2>&1 | FileCheck %s --check-prefixes=CHECK-READ-FROM-CACHE |
| 30 | +// RUN: %if available %{ %{cache_vars} %t.out 2>&1 | FileCheck %s --check-prefixes=CHECK-WRITTEN-TO-CACHE %} |
| 31 | +// RUN: %if available %{ %{cache_vars} %t.out reading-from-cache 2>&1 | FileCheck %s --check-prefixes=CHECK-READ-FROM-CACHE %} |
25 | 32 |
|
26 | 33 | // -- Add leak check.
|
27 | 34 | // RUN: rm -rf %t/cache_dir
|
28 |
| -// RUN: %{l0_leak_check} %{cache_vars} %t.out 2>&1 | FileCheck %s --check-prefixes=CHECK-WRITTEN-TO-CACHE |
29 |
| -// RUN: %{l0_leak_check} %{cache_vars} %t.out reading-from-cache 2>&1 | FileCheck %s --check-prefixes=CHECK-READ-FROM-CACHE |
| 35 | +// RUN: %if available %{ %{l0_leak_check} %{cache_vars} %t.out 2>&1 | FileCheck %s --check-prefixes=CHECK-WRITTEN-TO-CACHE %} |
| 36 | +// RUN: %if available %{ %{l0_leak_check} %{cache_vars} %t.out reading-from-cache 2>&1 | FileCheck %s --check-prefixes=CHECK-READ-FROM-CACHE %} |
30 | 37 |
|
31 | 38 | // CHECK-WRITTEN-TO-CACHE: [Persistent Cache]: enabled
|
32 | 39 | // CHECK-WRITTEN-TO-CACHE-NOT: [kernel_compiler Persistent Cache]: using cached binary
|
@@ -301,13 +308,18 @@ void test_esimd() {
|
301 | 308 | }
|
302 | 309 |
|
303 | 310 | int main(int argc, char *argv[]) {
|
| 311 | + namespace syclex = sycl::ext::oneapi::experimental; |
304 | 312 | bool readingFromCache = false;
|
305 | 313 |
|
306 | 314 | // Check if the argument is present
|
307 | 315 | if (argc > 1) {
|
308 | 316 | std::string argument(argv[1]);
|
309 | 317 | if (argument == "reading-from-cache") {
|
310 | 318 | readingFromCache = true;
|
| 319 | + } else if (argument == "available") { |
| 320 | + sycl::device d; |
| 321 | + bool avail = d.ext_oneapi_can_compile(syclex::source_language::sycl); |
| 322 | + return avail; |
311 | 323 | }
|
312 | 324 | }
|
313 | 325 |
|
|
0 commit comments