From 24527a18e8f13e39fd16a03d277c69920d14d67c Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Wed, 23 Oct 2024 09:08:33 -0700 Subject: [PATCH 1/8] [SYCL][E2E] Add a test to track UNSUPPORTED tests Similar to XFAIL tests (no-xfail-without-tracker.cpp) adding a requirement to follow UNSUPPORTED by UNSUPPORTED-TRACKER. Adding a test to track the amount and the list of improperly UNSUPPORTED tests. Also update some tests to check the script. --- sycl/test-e2e/Assert/assert_in_kernels.cpp | 2 +- .../Assert/assert_in_multiple_tus.cpp | 6 +- .../assert_in_multiple_tus_one_ndebug.cpp | 4 +- sycl/test-e2e/Assert/assert_in_one_kernel.cpp | 2 +- ...simultaneously_multiple_tus_one_ndebug.cpp | 2 +- sycl/test-e2e/Basic/kernel_max_wg_size.cpp | 1 + sycl/test-e2e/README.md | 35 ++ sycl/test/no-unsupported-without-tracker.cpp | 545 ++++++++++++++++++ sycl/test/no-xfail-without-tracker.cpp | 3 +- 9 files changed, 591 insertions(+), 9 deletions(-) create mode 100644 sycl/test/no-unsupported-without-tracker.cpp diff --git a/sycl/test-e2e/Assert/assert_in_kernels.cpp b/sycl/test-e2e/Assert/assert_in_kernels.cpp index 2ccf74d53d137..ce999cdc41f96 100644 --- a/sycl/test-e2e/Assert/assert_in_kernels.cpp +++ b/sycl/test-e2e/Assert/assert_in_kernels.cpp @@ -1,7 +1,7 @@ // REQUIRES: linux -// https://github.com/intel/llvm/issues/7634 // UNSUPPORTED: hip +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/7634 // // XFAIL: (opencl && gpu) // XFAIL-TRACKER: https://github.com/intel/llvm/issues/11364 diff --git a/sycl/test-e2e/Assert/assert_in_multiple_tus.cpp b/sycl/test-e2e/Assert/assert_in_multiple_tus.cpp index 9e6c4ac9b3712..d54bcdf93df1d 100644 --- a/sycl/test-e2e/Assert/assert_in_multiple_tus.cpp +++ b/sycl/test-e2e/Assert/assert_in_multiple_tus.cpp @@ -1,16 +1,16 @@ // REQUIRES: linux -// https://github.com/intel/llvm/issues/7634 // UNSUPPORTED: hip +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/7634 // -// https://github.com/intel/llvm/issues/8832 // UNSUPPORTED: cuda +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/8832 // // XFAIL: (opencl && gpu) // XFAIL-TRACKER: https://github.com/intel/llvm/issues/11364 -// https://github.com/intel/llvm/issues/15029 // UNSUPPORTED: gpu-intel-dg2 +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/15029 // RUN: %{build} -DSYCL_FALLBACK_ASSERT=1 -I %S/Inputs %S/Inputs/kernels_in_file2.cpp -o %t.out // RUN: %{run} %t.out &> %t.txt ; FileCheck %s --input-file %t.txt %if fpga %{ --check-prefix=CHECK-ACC %} diff --git a/sycl/test-e2e/Assert/assert_in_multiple_tus_one_ndebug.cpp b/sycl/test-e2e/Assert/assert_in_multiple_tus_one_ndebug.cpp index df251aa11f2e5..8ffea706d4f58 100644 --- a/sycl/test-e2e/Assert/assert_in_multiple_tus_one_ndebug.cpp +++ b/sycl/test-e2e/Assert/assert_in_multiple_tus_one_ndebug.cpp @@ -1,10 +1,10 @@ // REQUIRES: linux -// https://github.com/intel/llvm/issues/7634 // UNSUPPORTED: hip +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/7634 // -// https://github.com/intel/llvm/issues/8832 // UNSUPPORTED: cuda +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/8832 // // XFAIL: (opencl && gpu) // XFAIL-TRACKER: https://github.com/intel/llvm/issues/11364 diff --git a/sycl/test-e2e/Assert/assert_in_one_kernel.cpp b/sycl/test-e2e/Assert/assert_in_one_kernel.cpp index 4d6bf94723304..bcb335aff2e8c 100644 --- a/sycl/test-e2e/Assert/assert_in_one_kernel.cpp +++ b/sycl/test-e2e/Assert/assert_in_one_kernel.cpp @@ -1,7 +1,7 @@ // REQUIRES: linux -// https://github.com/intel/llvm/issues/7634 // UNSUPPORTED: hip +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/7634 // // XFAIL: (opencl && gpu) // XFAIL-TRACKER: https://github.com/intel/llvm/issues/11364 diff --git a/sycl/test-e2e/Assert/assert_in_simultaneously_multiple_tus_one_ndebug.cpp b/sycl/test-e2e/Assert/assert_in_simultaneously_multiple_tus_one_ndebug.cpp index f95379e9fdadd..6cc3b6c85d283 100644 --- a/sycl/test-e2e/Assert/assert_in_simultaneously_multiple_tus_one_ndebug.cpp +++ b/sycl/test-e2e/Assert/assert_in_simultaneously_multiple_tus_one_ndebug.cpp @@ -1,6 +1,6 @@ // FIXME flaky fail on CUDA -// FIXME HIP: https://github.com/intel/llvm/issues/7634 // UNSUPPORTED: cuda, hip +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/7634 // // XFAIL: (opencl && gpu) // XFAIL-TRACKER: https://github.com/intel/llvm/issues/11364 diff --git a/sycl/test-e2e/Basic/kernel_max_wg_size.cpp b/sycl/test-e2e/Basic/kernel_max_wg_size.cpp index 0a6d2a58c5ffb..9c8dae09acdc4 100644 --- a/sycl/test-e2e/Basic/kernel_max_wg_size.cpp +++ b/sycl/test-e2e/Basic/kernel_max_wg_size.cpp @@ -5,6 +5,7 @@ // https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_intel_grf_size.asciidoc // REQUIRES: arch-intel_gpu_pvc || gpu-intel-dg2 // UNSUPPORTED: cuda || hip +// UNSUPPORTED-TRACKER: INTENDED - This extension is currently implemented in DPC++ only for Intel GPU devices and only when using the Level Zero backend or OpenCL backend. // clang-format off #include diff --git a/sycl/test-e2e/README.md b/sycl/test-e2e/README.md index e04ebdc6d957b..c6826f4dd249e 100644 --- a/sycl/test-e2e/README.md +++ b/sycl/test-e2e/README.md @@ -344,3 +344,38 @@ Once the issue is created, you can update the test by adding `XFAIL` and If you add `XFAIL` without `XFAIL-TRACKER` directive, `no-xfail-without-tracker.cpp` test will fail, notifying you about that. + +## Marking tests as unsupported + +Some tests may be considered unsupported, e.g.: +* the test checks the feature that is not supported by some + backend / device / OS / etc. +* the test is flaky or hangs, so it can't be marked with `XFAIL`. + +In these cases the test can be marked with `UNSUPPORTED`. This mark should be +followed by `UNSUPPORTED-TRACKER`. There are two options: +``` +UNSUPPORTED-TRACKER: INTENDED - +UNSUPPORTED-TRACKER: +``` + +In the first case it should look like: +``` +// UNSUPPORTED: cuda, hip +// UNSUPPORTED-TRACKER: INTENDED - only supported by backends with SPIR-V IR + +// UNSUPPORTED: gpu +// UNSUPPORTED-TRACKER: INTENDED - the feature works only on CPU & FPGA +``` + +For the second case the tracker should be provided: +``` +// Sporadically fails on DG2. +// UNSUPPORTED: gpu-intel-dg2 +// UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/DDDDD +// *OR* +// UNSUPPORTED-TRACKER: PRJ-1234 +``` + +If you add `UNSUPPORTED` without `UNSUPPORTED-TRACKER` directive, +`no-unsupported-without-tracker.cpp` test will fail, notifying you about that. diff --git a/sycl/test/no-unsupported-without-tracker.cpp b/sycl/test/no-unsupported-without-tracker.cpp new file mode 100644 index 0000000000000..c69465c3b762c --- /dev/null +++ b/sycl/test/no-unsupported-without-tracker.cpp @@ -0,0 +1,545 @@ +// This test is intended to ensure that we have no trackers marked as +// UNSUPPORTED without a tracker information added to a test. +// For more info see: sycl/test-e2e/README.md +// +// The format we check is: +// UNSUPPORTED: lit,features +// UNSUPPORTED-TRACKER: [GitHub issue URL|Internal tracker ID|INTENDED - reason] +// +// GitHub issue URL format: +// https://github.com/owner/repo/issues/12345 +// +// Internal tracker ID format: +// PROJECT-123456 +// +// Reason format: +// Just a free form text +// +// REQUIRES: linux +// +// Explanation of the command: +// - search for all "UNSUPPORTED" occurrences, display line with match and the next one +// -I, --include to drop binary files and other unrelated files +// - in the result, search for "UNSUPPORTED" again, but invert the result - this +// allows us to get the line *after* UNSUPPORTED +// - in those lines, check that UNSUPPORTED-TRACKER is present and correct. Once +// again, invert the search to get all "bad" lines and save the test names in +// the temp file +// - make a final count of how many ill-formatted directives there are and +// verify that against the reference +// - ...and check if the list of improperly UNSUPPORTED tests needs to be updated. +// +// RUN: grep -rI "UNSUPPORTED:" %S/../test-e2e \ +// RUN: -A 1 --include=*.c --include=*.cpp --no-group-separator | \ +// RUN: grep -v "UNSUPPORTED:" | \ +// RUN: grep -Pv "UNSUPPORTED-TRACKER:\s+(?:https://github.com/[\w\d-]+/[\w\d-]+/issues/[\d]+)|(?:[\w]+-[\d]+)|(?:INTENDED\s*-\s*.+)" > %t | \ +// RUN: cat %t | wc -l | FileCheck %s --check-prefix NUMBER-OF-UNSUPPORTED-WITHOUT-TRACKER +// RUN: cat %t | sed 's/\.cpp.*/.cpp/' | sort | FileCheck %s +// +// The number below is a number of tests which are *improperly* UNSUPPORTED, i.e. +// we either don't have a tracker associated with a failure listed in those +// tests, or it is listed in a wrong format. +// Note: strictly speaking, that is not amount of files, but amount of UNSUPPORTED +// directives. If a test contains several UNSUPPORTED directives, some of them may be +// valid and other may not. +// +// That number *must not* increase. Any PR which causes this number to grow +// should be rejected and it should be updated to either keep the number as-is +// or have it reduced (preferrably, down to zero). +// +// If you see this test failed for your patch, it means that you either +// introduced UNSUPPORTED directive to a test improperly, or broke the format of an +// existing UNSUPPORTED tests. +// Another possibility (and that is a good option) is that you updated some +// tests to match the required format and in that case you should just update +// (i.e. reduce) the number and the list below. +// +// NUMBER-OF-UNSUPPORTED-WITHOUT-TRACKER: 484 +// +// List of improperly UNSUPPORTED tests. +// Remove the CHECK once the test has been propely UNSUPPORTED. +// +// CHECK: AOT/early_aot.cpp +// CHECK-NEXT: AOT/gpu.cpp +// CHECK-NEXT: AOT/multiple-devices.cpp +// CHECK-NEXT: AddressCast/dynamic_address_cast.cpp +// CHECK-NEXT: AddressCast/static_address_cast.cpp +// CHECK-NEXT: AddressSanitizer/nullpointer/global_nullptr.cpp +// CHECK-NEXT: AmdNvidiaJIT/kernel_and_bundle.cpp +// CHECK-NEXT: Assert/assert_in_simultaneous_kernels.cpp +// CHECK-NEXT: Assert/assert_in_simultaneously_multiple_tus.cpp +// CHECK-NEXT: Assert/check_resource_leak.cpp +// CHECK-NEXT: Assert/check_resource_leak.cpp +// CHECK-NEXT: AtomicRef/assignment_atomic64_generic.cpp +// CHECK-NEXT: AtomicRef/exchange.cpp +// CHECK-NEXT: BFloat16/bfloat16_vec.cpp +// CHECK-NEXT: Basic/buffer/buffer_create.cpp +// CHECK-NEXT: Basic/buffer/subbuffer.cpp +// CHECK-NEXT: Basic/build_log.cpp +// CHECK-NEXT: Basic/code_location_e2e.cpp +// CHECK-NEXT: Basic/free_function_queries/free_function_queries.cpp +// CHECK-NEXT: Basic/free_function_queries/free_function_queries_sub_group.cpp +// CHECK-NEXT: Basic/free_function_queries/free_function_queries_sub_group.cpp +// CHECK-NEXT: Basic/gpu_max_wgs_error.cpp +// CHECK-NEXT: Basic/group_async_copy.cpp +// CHECK-NEXT: Basic/host-task-dependency.cpp +// CHECK-NEXT: Basic/image/image.cpp +// CHECK-NEXT: Basic/image/image_accessor_range.cpp +// CHECK-NEXT: Basic/image/image_accessor_readsampler.cpp +// CHECK-NEXT: Basic/image/image_accessor_readwrite.cpp +// CHECK-NEXT: Basic/image/image_accessor_readwrite_half.cpp +// CHECK-NEXT: Basic/image/image_array.cpp +// CHECK-NEXT: Basic/image/image_array.cpp +// CHECK-NEXT: Basic/image/image_max_size.cpp +// CHECK-NEXT: Basic/image/image_read.cpp +// CHECK-NEXT: Basic/image/image_read_fp16.cpp +// CHECK-NEXT: Basic/image/image_sample.cpp +// CHECK-NEXT: Basic/image/image_write.cpp +// CHECK-NEXT: Basic/image/image_write_fp16.cpp +// CHECK-NEXT: Basic/kernel_info_attr.cpp +// CHECK-NEXT: Basic/multisource_spv_obj.cpp +// CHECK-NEXT: Basic/spirv_device_obj_smoke.cpp +// CHECK-NEXT: Basic/stream/release_resources_test.cpp +// CHECK-NEXT: Basic/submit_time.cpp +// CHECK-NEXT: Config/kernel_from_file.cpp +// CHECK-NEXT: DeviceArchitecture/device_architecture_comparison_on_host.cpp +// CHECK-NEXT: DeviceCodeSplit/aot-gpu.cpp +// CHECK-NEXT: DeviceGlobal/device_global_arrow.cpp +// CHECK-NEXT: DeviceGlobal/device_global_arrow_dis.cpp +// CHECK-NEXT: DeviceGlobal/device_global_device_only.cpp +// CHECK-NEXT: DeviceGlobal/device_global_device_only_dis.cpp +// CHECK-NEXT: DeviceGlobal/device_global_operator_passthrough.cpp +// CHECK-NEXT: DeviceGlobal/device_global_operator_passthrough_dis.cpp +// CHECK-NEXT: DeviceGlobal/device_global_static.cpp +// CHECK-NEXT: DeviceGlobal/device_global_subscript.cpp +// CHECK-NEXT: DeviceGlobal/device_global_subscript_dis.cpp +// CHECK-NEXT: DeviceImageDependencies/dynamic.cpp +// CHECK-NEXT: DeviceImageDependencies/free_function_kernels.cpp +// CHECK-NEXT: DeviceImageDependencies/math_device_lib.cpp +// CHECK-NEXT: DeviceImageDependencies/objects.cpp +// CHECK-NEXT: DeviceImageDependencies/singleDynamicLibrary.cpp +// CHECK-NEXT: DeviceLib/built-ins/printf.cpp +// CHECK-NEXT: DeviceLib/cmath-aot.cpp +// CHECK-NEXT: DeviceLib/cmath_fp64_test.cpp +// CHECK-NEXT: DeviceLib/complex-fpga.cpp +// CHECK-NEXT: DeviceLib/exp/exp-std-complex-double-edge-cases.cpp +// CHECK-NEXT: DeviceLib/imf_bfloat16_integeral_convesions.cpp +// CHECK-NEXT: DeviceLib/imf_bfloat16_integeral_convesions.cpp +// CHECK-NEXT: DeviceLib/imf_double2bfloat16.cpp +// CHECK-NEXT: DeviceLib/imf_double2half.cpp +// CHECK-NEXT: DeviceLib/imf_float2bfloat16.cpp +// CHECK-NEXT: DeviceLib/imf_fp16_trivial_test.cpp +// CHECK-NEXT: DeviceLib/imf_fp16_trivial_test.cpp +// CHECK-NEXT: DeviceLib/imf_fp32_rounding_test.cpp +// CHECK-NEXT: DeviceLib/imf_fp32_test.cpp +// CHECK-NEXT: DeviceLib/imf_fp32_test.cpp +// CHECK-NEXT: DeviceLib/imf_fp64_rounding_test.cpp +// CHECK-NEXT: DeviceLib/imf_fp64_test.cpp +// CHECK-NEXT: DeviceLib/imf_fp64_test2.cpp +// CHECK-NEXT: DeviceLib/imf_half_type_cast.cpp +// CHECK-NEXT: DeviceLib/imf_half_type_cast.cpp +// CHECK-NEXT: DeviceLib/imf_simd_emulate_test.cpp +// CHECK-NEXT: DeviceLib/rand_test.cpp +// CHECK-NEXT: DeviceLib/separate_compile_test.cpp +// CHECK-NEXT: DeviceLib/std_complex_math_fp64_test.cpp +// CHECK-NEXT: DeviceLib/std_complex_math_test.cpp +// CHECK-NEXT: DiscardEvents/discard_events_check_images.cpp +// CHECK-NEXT: DiscardEvents/discard_events_using_assert.cpp +// CHECK-NEXT: ESIMD/PerformanceTests/BitonicSortK.cpp +// CHECK-NEXT: ESIMD/PerformanceTests/BitonicSortKv2.cpp +// CHECK-NEXT: ESIMD/PerformanceTests/Stencil.cpp +// CHECK-NEXT: ESIMD/PerformanceTests/invoke_simd_smoke.cpp +// CHECK-NEXT: ESIMD/PerformanceTests/matrix_transpose.cpp +// CHECK-NEXT: ESIMD/PerformanceTests/stencil2.cpp +// CHECK-NEXT: ESIMD/addc.cpp +// CHECK-NEXT: ESIMD/api/bin_and_cmp_ops_heavy.cpp +// CHECK-NEXT: ESIMD/api/replicate_smoke.cpp +// CHECK-NEXT: ESIMD/api/simd_copy_to_from.cpp +// CHECK-NEXT: ESIMD/api/simd_copy_to_from_stateful.cpp +// CHECK-NEXT: ESIMD/api/simd_subscript_operator.cpp +// CHECK-NEXT: ESIMD/api/simd_view_subscript_operator.cpp +// CHECK-NEXT: ESIMD/api/svm_gather_scatter.cpp +// CHECK-NEXT: ESIMD/api/svm_gather_scatter_scalar_off.cpp +// CHECK-NEXT: ESIMD/api/unary_ops_heavy.cpp +// CHECK-NEXT: ESIMD/assert.cpp +// CHECK-NEXT: ESIMD/ext_math.cpp +// CHECK-NEXT: ESIMD/ext_math_fast.cpp +// CHECK-NEXT: ESIMD/ext_math_saturate.cpp +// CHECK-NEXT: ESIMD/fp_in_phi.cpp +// CHECK-NEXT: ESIMD/lsc/lsc_store_2d_u16.cpp +// CHECK-NEXT: ESIMD/lsc/lsc_usm_store_u8_u16.cpp +// CHECK-NEXT: ESIMD/lsc/lsc_usm_store_u8_u16_64.cpp +// CHECK-NEXT: ESIMD/matrix_transpose2.cpp +// CHECK-NEXT: ESIMD/named_barriers/loop.cpp +// CHECK-NEXT: ESIMD/named_barriers/loop_extended.cpp +// CHECK-NEXT: ESIMD/preemption.cpp +// CHECK-NEXT: ESIMD/private_memory/private_memory.cpp +// CHECK-NEXT: ESIMD/regression/bitreverse.cpp +// CHECK-NEXT: ESIMD/regression/copyto_char_test.cpp +// CHECK-NEXT: ESIMD/regression/variable_gather_mask.cpp +// CHECK-NEXT: ESIMD/slm_alloc_many_kernels_many_funcs.cpp +// CHECK-NEXT: ESIMD/slm_alloc_many_kernels_one_func.cpp +// CHECK-NEXT: ESIMD/slm_init_no_inline.cpp +// CHECK-NEXT: ESIMD/subb.cpp +// CHECK-NEXT: Graph/Explicit/add_nodes_after_finalize.cpp +// CHECK-NEXT: Graph/Explicit/basic_usm.cpp +// CHECK-NEXT: Graph/Explicit/basic_usm_host.cpp +// CHECK-NEXT: Graph/Explicit/basic_usm_mixed.cpp +// CHECK-NEXT: Graph/Explicit/basic_usm_shared.cpp +// CHECK-NEXT: Graph/Explicit/buffer_copy_host2target.cpp +// CHECK-NEXT: Graph/Explicit/buffer_copy_host2target_2d.cpp +// CHECK-NEXT: Graph/Explicit/buffer_copy_host2target_offset.cpp +// CHECK-NEXT: Graph/Explicit/buffer_copy_target2host.cpp +// CHECK-NEXT: Graph/Explicit/buffer_copy_target2host_2d.cpp +// CHECK-NEXT: Graph/Explicit/buffer_copy_target2host_offset.cpp +// CHECK-NEXT: Graph/Explicit/host_task2_multiple_roots.cpp +// CHECK-NEXT: Graph/Explicit/host_task2_multiple_roots.cpp +// CHECK-NEXT: Graph/Explicit/host_task2_multiple_roots.cpp +// CHECK-NEXT: Graph/Explicit/host_task_multiple_deps.cpp +// CHECK-NEXT: Graph/Explicit/host_task_multiple_roots.cpp +// CHECK-NEXT: Graph/Explicit/host_task_multiple_roots.cpp +// CHECK-NEXT: Graph/Explicit/interop-level-zero-get-native-mem.cpp +// CHECK-NEXT: Graph/Explicit/interop-level-zero-launch-kernel.cpp +// CHECK-NEXT: Graph/Explicit/memadvise.cpp +// CHECK-NEXT: Graph/Explicit/multiple_exec_graphs.cpp +// CHECK-NEXT: Graph/Explicit/prefetch.cpp +// CHECK-NEXT: Graph/Explicit/queue_constructor_usm.cpp +// CHECK-NEXT: Graph/Explicit/queue_shortcuts.cpp +// CHECK-NEXT: Graph/Explicit/spec_constants_handler_api.cpp +// CHECK-NEXT: Graph/Explicit/spec_constants_kernel_bundle_api.cpp +// CHECK-NEXT: Graph/Explicit/sub_graph.cpp +// CHECK-NEXT: Graph/Explicit/usm_copy.cpp +// CHECK-NEXT: Graph/Explicit/usm_fill.cpp +// CHECK-NEXT: Graph/Explicit/usm_fill_host.cpp +// CHECK-NEXT: Graph/Explicit/usm_fill_shared.cpp +// CHECK-NEXT: Graph/Explicit/usm_memset.cpp +// CHECK-NEXT: Graph/Explicit/work_group_size_prop.cpp +// CHECK-NEXT: Graph/RecordReplay/add_nodes_after_finalize.cpp +// CHECK-NEXT: Graph/RecordReplay/after_use.cpp +// CHECK-NEXT: Graph/RecordReplay/barrier_with_work.cpp +// CHECK-NEXT: Graph/RecordReplay/basic_usm.cpp +// CHECK-NEXT: Graph/RecordReplay/basic_usm_host.cpp +// CHECK-NEXT: Graph/RecordReplay/basic_usm_mixed.cpp +// CHECK-NEXT: Graph/RecordReplay/basic_usm_shared.cpp +// CHECK-NEXT: Graph/RecordReplay/buffer_copy_host2target.cpp +// CHECK-NEXT: Graph/RecordReplay/buffer_copy_host2target_2d.cpp +// CHECK-NEXT: Graph/RecordReplay/buffer_copy_host2target_offset.cpp +// CHECK-NEXT: Graph/RecordReplay/buffer_copy_target2host.cpp +// CHECK-NEXT: Graph/RecordReplay/buffer_copy_target2host_2d.cpp +// CHECK-NEXT: Graph/RecordReplay/buffer_copy_target2host_offset.cpp +// CHECK-NEXT: Graph/RecordReplay/host_task2_multiple_roots.cpp +// CHECK-NEXT: Graph/RecordReplay/host_task2_multiple_roots.cpp +// CHECK-NEXT: Graph/RecordReplay/host_task_multiple_deps.cpp +// CHECK-NEXT: Graph/RecordReplay/host_task_multiple_roots.cpp +// CHECK-NEXT: Graph/RecordReplay/host_task_multiple_roots.cpp +// CHECK-NEXT: Graph/RecordReplay/interop-level-zero-get-native-mem.cpp +// CHECK-NEXT: Graph/RecordReplay/interop-level-zero-launch-kernel.cpp +// CHECK-NEXT: Graph/RecordReplay/memadvise.cpp +// CHECK-NEXT: Graph/RecordReplay/multiple_exec_graphs.cpp +// CHECK-NEXT: Graph/RecordReplay/prefetch.cpp +// CHECK-NEXT: Graph/RecordReplay/queue_constructor_usm.cpp +// CHECK-NEXT: Graph/RecordReplay/queue_shortcuts.cpp +// CHECK-NEXT: Graph/RecordReplay/spec_constants_handler_api.cpp +// CHECK-NEXT: Graph/RecordReplay/spec_constants_kernel_bundle_api.cpp +// CHECK-NEXT: Graph/RecordReplay/sub_graph.cpp +// CHECK-NEXT: Graph/RecordReplay/usm_copy.cpp +// CHECK-NEXT: Graph/RecordReplay/usm_copy_in_order.cpp +// CHECK-NEXT: Graph/RecordReplay/usm_fill.cpp +// CHECK-NEXT: Graph/RecordReplay/usm_fill_host.cpp +// CHECK-NEXT: Graph/RecordReplay/usm_fill_shared.cpp +// CHECK-NEXT: Graph/RecordReplay/usm_memset.cpp +// CHECK-NEXT: Graph/RecordReplay/usm_memset_shortcut.cpp +// CHECK-NEXT: Graph/RecordReplay/work_group_size_prop.cpp +// CHECK-NEXT: Graph/UnsupportedDevice/device_query.cpp +// CHECK-NEXT: GroupAlgorithm/SYCL2020/reduce_over_group_size.cpp +// CHECK-NEXT: GroupAlgorithm/reduce_sycl2020.cpp +// CHECK-NEXT: GroupAlgorithm/root_group.cpp +// CHECK-NEXT: HierPar/hier_par_wgscope.cpp +// CHECK-NEXT: HostInteropTask/host-task-failure.cpp +// CHECK-NEXT: HostInteropTask/interop-task.cpp +// CHECK-NEXT: InOrderEventsExt/get_last_event.cpp +// CHECK-NEXT: InvokeSimd/Feature/ImplicitSubgroup/SPMD_invoke_ESIMD_external.cpp +// CHECK-NEXT: KernelAndProgram/build-log.cpp +// CHECK-NEXT: KernelAndProgram/cache-build-result.cpp +// CHECK-NEXT: KernelAndProgram/free_function_apis.cpp +// CHECK-NEXT: KernelAndProgram/free_function_kernels.cpp +// CHECK-NEXT: KernelAndProgram/kernel-bundle-merge-options-env.cpp +// CHECK-NEXT: KernelAndProgram/kernel-bundle-merge-options.cpp +// CHECK-NEXT: KernelAndProgram/level-zero-static-link-flow.cpp +// CHECK-NEXT: KernelAndProgram/multiple-kernel-linking.cpp +// CHECK-NEXT: KernelAndProgram/spec_constants_after_link.cpp +// CHECK-NEXT: KernelAndProgram/spec_constants_after_link.cpp +// CHECK-NEXT: KernelAndProgram/undefined-symbol.cpp +// CHECK-NEXT: KernelCompiler/kernel_compiler_opencl.cpp +// CHECK-NEXT: KernelCompiler/kernel_compiler_sycl.cpp +// CHECK-NEXT: KernelCompiler/multi_device.cpp +// CHECK-NEXT: KernelCompiler/sycl_device_flags.cpp +// CHECK-NEXT: LLVMIntrinsicLowering/bitreverse.cpp +// CHECK-NEXT: LLVMIntrinsicLowering/sub_byte_bitreverse.cpp +// CHECK-NEXT: Matrix/SG32/element_wise_abc.cpp +// CHECK-NEXT: Matrix/SG32/element_wise_all_ops.cpp +// CHECK-NEXT: Matrix/SG32/element_wise_all_ops_half.cpp +// CHECK-NEXT: Matrix/SG32/element_wise_all_ops_int8.cpp +// CHECK-NEXT: Matrix/SG32/element_wise_all_ops_int8_packed.cpp +// CHECK-NEXT: Matrix/SG32/element_wise_all_sizes.cpp +// CHECK-NEXT: Matrix/SG32/element_wise_ops.cpp +// CHECK-NEXT: Matrix/SG32/get_coord_float_matC.cpp +// CHECK-NEXT: Matrix/SG32/get_coord_int8_matA.cpp +// CHECK-NEXT: Matrix/SG32/get_coord_int8_matB.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_all_sizes.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_apply_bf16.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_apply_two_matrices.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bf16_fill_k_cache.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bf16_fill_k_cache_SLM.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bf16_fill_k_cache_init.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bf16_fill_k_cache_unroll.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bf16_fill_k_cache_unroll_init.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bfloat16.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bfloat16_array.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_bfloat16_packedB.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_down_convert.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_half.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_int8_rowmajorA_rowmajorB.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_out_bounds.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_prefetch.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_rowmajorA_rowmajorB.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_ss_int8.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_su_int8.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_transposeC.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_unaligned_k.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_us_int8.cpp +// CHECK-NEXT: Matrix/SG32/joint_matrix_uu_int8.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/element_wise_abc.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/element_wise_all_ops.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/element_wise_all_ops_half.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/element_wise_all_ops_int8.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/element_wise_all_ops_int8_packed.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/element_wise_all_sizes.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/element_wise_ops.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/get_coord_float_matC.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/get_coord_int8_matA.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/get_coord_int8_matB.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_all_sizes.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_apply_bf16.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_apply_two_matrices.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bf16_fill_k_cache.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bf16_fill_k_cache_SLM.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bf16_fill_k_cache_init.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bf16_fill_k_cache_unroll.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bf16_fill_k_cache_unroll_init.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bfloat16.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bfloat16_array.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_bfloat16_packedB.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_down_convert.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_half.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_int8_rowmajorA_rowmajorB.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_out_bounds.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_prefetch.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_rowmajorA_rowmajorB.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_ss_int8.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_su_int8.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_transposeC.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_unaligned_k.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_us_int8.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/SG32/joint_matrix_uu_int8.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/element_wise_all_ops_half.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/joint_matrix_annotated_ptr.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/joint_matrix_bf16_fill_k_cache_OOB.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/joint_matrix_down_convert.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/joint_matrix_half.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/joint_matrix_out_bounds.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/joint_matrix_rowmajorA_rowmajorB.cpp +// CHECK-NEXT: Matrix/SPVCooperativeMatrix/joint_matrix_unaligned_k.cpp +// CHECK-NEXT: Matrix/joint_matrix_annotated_ptr.cpp +// CHECK-NEXT: Matrix/joint_matrix_bf16_fill_k_cache_OOB.cpp +// CHECK-NEXT: Matrix/joint_matrix_bf16_fill_k_cache_prefetch.cpp +// CHECK-NEXT: Matrix/joint_matrix_down_convert.cpp +// CHECK-NEXT: Matrix/joint_matrix_out_bounds.cpp +// CHECK-NEXT: Matrix/joint_matrix_rowmajorA_rowmajorB.cpp +// CHECK-NEXT: Matrix/joint_matrix_unaligned_k.cpp +// CHECK-NEXT: NewOffloadDriver/aot-gpu.cpp +// CHECK-NEXT: NewOffloadDriver/spirv_device_obj_smoke.cpp +// CHECK-NEXT: NonUniformGroups/ballot_group.cpp +// CHECK-NEXT: NonUniformGroups/ballot_group_algorithms.cpp +// CHECK-NEXT: NonUniformGroups/opportunistic_group.cpp +// CHECK-NEXT: NonUniformGroups/tangle_group.cpp +// CHECK-NEXT: NonUniformGroups/tangle_group_algorithms.cpp +// CHECK-NEXT: OptionalKernelFeatures/fp64-conv-emu.cpp +// CHECK-NEXT: OptionalKernelFeatures/is_compatible/is_compatible_with_aspects.cpp +// CHECK-NEXT: OptionalKernelFeatures/large-reqd-work-group-size.cpp +// CHECK-NEXT: OptionalKernelFeatures/no-fp64-optimization-declared-aspects.cpp +// CHECK-NEXT: Plugin/enqueue-arg-order-buffer.cpp +// CHECK-NEXT: Plugin/enqueue-arg-order-image.cpp +// CHECK-NEXT: Plugin/enqueue-arg-order-image.cpp +// CHECK-NEXT: Plugin/interop-l0-direct.cpp +// CHECK-NEXT: Plugin/interop-level-zero-buffer-ownership.cpp +// CHECK-NEXT: Plugin/interop-level-zero-buffer.cpp +// CHECK-NEXT: Plugin/interop-level-zero-get-native-mem.cpp +// CHECK-NEXT: Plugin/interop-level-zero-image-get-native-mem.cpp +// CHECK-NEXT: Plugin/interop-level-zero-image-ownership.cpp +// CHECK-NEXT: Plugin/interop-level-zero-image-ownership.cpp +// CHECK-NEXT: Plugin/interop-level-zero-image.cpp +// CHECK-NEXT: Plugin/interop-level-zero.cpp +// CHECK-NEXT: Plugin/level_zero_batch_event_status.cpp +// CHECK-NEXT: Plugin/level_zero_batch_test.cpp +// CHECK-NEXT: Plugin/level_zero_batch_test_copy_with_compute.cpp +// CHECK-NEXT: Plugin/level_zero_device_free_mem.cpp +// CHECK-NEXT: Plugin/level_zero_device_scope_events.cpp +// CHECK-NEXT: Plugin/level_zero_dynamic_batch_test.cpp +// CHECK-NEXT: Plugin/level_zero_imm_cmdlist_per_thread.cpp +// CHECK-NEXT: Plugin/level_zero_queue_profiling.cpp +// CHECK-NEXT: Plugin/level_zero_usm_device_read_only.cpp +// CHECK-NEXT: Plugin/max_malloc.cpp +// CHECK-NEXT: Printf/char.cpp +// CHECK-NEXT: Printf/double.cpp +// CHECK-NEXT: Printf/float.cpp +// CHECK-NEXT: Printf/int.cpp +// CHECK-NEXT: Printf/mixed-address-space.cpp +// CHECK-NEXT: Printf/percent-symbol.cpp +// CHECK-NEXT: ProfilingTag/default_queue.cpp +// CHECK-NEXT: ProfilingTag/default_queue.cpp +// CHECK-NEXT: ProfilingTag/in_order_profiling_queue.cpp +// CHECK-NEXT: ProfilingTag/in_order_profiling_queue.cpp +// CHECK-NEXT: ProfilingTag/in_order_profiling_queue.cpp +// CHECK-NEXT: ProfilingTag/in_order_profiling_queue.cpp +// CHECK-NEXT: ProfilingTag/in_order_queue.cpp +// CHECK-NEXT: ProfilingTag/in_order_queue.cpp +// CHECK-NEXT: ProfilingTag/profiling_queue.cpp +// CHECK-NEXT: ProfilingTag/profiling_queue.cpp +// CHECK-NEXT: ProfilingTag/profiling_queue.cpp +// CHECK-NEXT: ProfilingTag/profiling_queue.cpp +// CHECK-NEXT: ProgramManager/uneven_kernel_split.cpp +// CHECK-NEXT: Reduction/reduction_big_data.cpp +// CHECK-NEXT: Reduction/reduction_complex_nums.cpp +// CHECK-NEXT: Reduction/reduction_ctor.cpp +// CHECK-NEXT: Reduction/reduction_nd_N_queue_shortcut.cpp +// CHECK-NEXT: Reduction/reduction_nd_N_vars.cpp +// CHECK-NEXT: Reduction/reduction_nd_conditional.cpp +// CHECK-NEXT: Reduction/reduction_nd_dw.cpp +// CHECK-NEXT: Reduction/reduction_nd_ext_half.cpp +// CHECK-NEXT: Reduction/reduction_nd_lambda.cpp +// CHECK-NEXT: Reduction/reduction_nd_queue_shortcut.cpp +// CHECK-NEXT: Reduction/reduction_nd_reducer_skip.cpp +// CHECK-NEXT: Reduction/reduction_nd_rw.cpp +// CHECK-NEXT: Reduction/reduction_range_1d_dw.cpp +// CHECK-NEXT: Reduction/reduction_range_1d_dw_64bit.cpp +// CHECK-NEXT: Reduction/reduction_range_1d_reducer_skip.cpp +// CHECK-NEXT: Reduction/reduction_range_1d_rw.cpp +// CHECK-NEXT: Reduction/reduction_range_2d_dw.cpp +// CHECK-NEXT: Reduction/reduction_range_2d_dw_reducer_skip.cpp +// CHECK-NEXT: Reduction/reduction_range_2d_rw.cpp +// CHECK-NEXT: Reduction/reduction_range_3d_dw.cpp +// CHECK-NEXT: Reduction/reduction_range_3d_rw.cpp +// CHECK-NEXT: Reduction/reduction_range_3d_rw_reducer_skip.cpp +// CHECK-NEXT: Reduction/reduction_range_N_vars.cpp +// CHECK-NEXT: Reduction/reduction_range_item.cpp +// CHECK-NEXT: Reduction/reduction_range_lambda.cpp +// CHECK-NEXT: Reduction/reduction_range_queue_shortcut.cpp +// CHECK-NEXT: Reduction/reduction_range_usm_dw.cpp +// CHECK-NEXT: Reduction/reduction_reducer_op_eq.cpp +// CHECK-NEXT: Reduction/reduction_span.cpp +// CHECK-NEXT: Reduction/reduction_span_pack.cpp +// CHECK-NEXT: Reduction/reduction_usm.cpp +// CHECK-NEXT: Reduction/reduction_usm_dw.cpp +// CHECK-NEXT: Regression/DAE-separate-compile.cpp +// CHECK-NEXT: Regression/acos.cpp +// CHECK-NEXT: Regression/barrier_waitlist_with_interop_event.cpp +// CHECK-NEXT: Regression/get_subgroup_sizes.cpp +// CHECK-NEXT: Regression/get_subgroup_sizes.cpp +// CHECK-NEXT: Regression/image_access.cpp +// CHECK-NEXT: Regression/in_order_barrier_profiling.cpp +// CHECK-NEXT: Regression/invalid_reqd_wg_size_correct_exception.cpp +// CHECK-NEXT: Regression/kernel_bundle_ignore_sycl_external.cpp +// CHECK-NEXT: Regression/kernel_bundle_ignore_sycl_external.cpp +// CHECK-NEXT: Regression/no-split-reqd-wg-size.cpp +// CHECK-NEXT: Regression/reduction_resource_leak_usm.cpp +// CHECK-NEXT: Regression/static-buffer-dtor.cpp +// CHECK-NEXT: Regression/static-buffer-dtor.cpp +// CHECK-NEXT: Sampler/basic-rw-float.cpp +// CHECK-NEXT: Sampler/basic-rw.cpp +// CHECK-NEXT: Sampler/normalized-clamp-linear-float.cpp +// CHECK-NEXT: Sampler/normalized-clamp-nearest.cpp +// CHECK-NEXT: Sampler/normalized-clampedge-linear-float.cpp +// CHECK-NEXT: Sampler/normalized-mirror-linear-float.cpp +// CHECK-NEXT: Sampler/normalized-mirror-nearest.cpp +// CHECK-NEXT: Sampler/normalized-none-linear-float.cpp +// CHECK-NEXT: Sampler/normalized-none-nearest.cpp +// CHECK-NEXT: Sampler/normalized-repeat-linear-float.cpp +// CHECK-NEXT: Sampler/normalized-repeat-nearest.cpp +// CHECK-NEXT: Sampler/unnormalized-clamp-linear-float.cpp +// CHECK-NEXT: Sampler/unnormalized-clamp-nearest.cpp +// CHECK-NEXT: Sampler/unnormalized-clampedge-linear-float.cpp +// CHECK-NEXT: Sampler/unnormalized-clampedge-nearest.cpp +// CHECK-NEXT: Sampler/unnormalized-none-linear-float.cpp +// CHECK-NEXT: Sampler/unnormalized-none-nearest.cpp +// CHECK-NEXT: Scheduler/HostAccDestruction.cpp +// CHECK-NEXT: Scheduler/InOrderQueueDeps.cpp +// CHECK-NEXT: SeparateCompile/test.cpp +// CHECK-NEXT: SpecConstants/2020/kernel-bundle-api.cpp +// CHECK-NEXT: SpecConstants/2020/non_native/gpu.cpp +// CHECK-NEXT: SpecConstants/2020/non_native/gpu.cpp +// CHECK-NEXT: SpecConstants/2020/non_native/multiple-targets.cpp +// CHECK-NEXT: Tracing/code_location_queue_copy.cpp +// CHECK-NEXT: Tracing/code_location_queue_parallel_for.cpp +// CHECK-NEXT: Tracing/code_location_queue_submit.cpp +// CHECK-NEXT: Tracing/task_execution.cpp +// CHECK-NEXT: Tracing/task_execution_handler.cpp +// CHECK-NEXT: Tracing/usm/queue_copy_released_pointer.cpp +// CHECK-NEXT: Tracing/usm/queue_single_task_nullptr.cpp +// CHECK-NEXT: Tracing/usm/queue_single_task_released_pointer.cpp +// CHECK-NEXT: USM/badmalloc.cpp +// CHECK-NEXT: USM/dep_events.cpp +// CHECK-NEXT: USM/free_during_kernel_execution.cpp +// CHECK-NEXT: USM/host_task.cpp +// CHECK-NEXT: USM/memops2d/copy2d_device_to_device.cpp +// CHECK-NEXT: USM/memops2d/copy2d_device_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/copy2d_device_to_host.cpp +// CHECK-NEXT: USM/memops2d/copy2d_device_to_shared.cpp +// CHECK-NEXT: USM/memops2d/copy2d_dhost_to_device.cpp +// CHECK-NEXT: USM/memops2d/copy2d_dhost_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/copy2d_dhost_to_host.cpp +// CHECK-NEXT: USM/memops2d/copy2d_dhost_to_shared.cpp +// CHECK-NEXT: USM/memops2d/copy2d_dhost_to_shared.cpp +// CHECK-NEXT: USM/memops2d/copy2d_host_to_device.cpp +// CHECK-NEXT: USM/memops2d/copy2d_host_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/copy2d_host_to_host.cpp +// CHECK-NEXT: USM/memops2d/copy2d_host_to_shared.cpp +// CHECK-NEXT: USM/memops2d/copy2d_host_to_shared.cpp +// CHECK-NEXT: USM/memops2d/copy2d_shared_to_device.cpp +// CHECK-NEXT: USM/memops2d/copy2d_shared_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/copy2d_shared_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/copy2d_shared_to_host.cpp +// CHECK-NEXT: USM/memops2d/copy2d_shared_to_host.cpp +// CHECK-NEXT: USM/memops2d/copy2d_shared_to_shared.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_device_to_device.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_device_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_device_to_host.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_device_to_shared.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_dhost_to_device.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_dhost_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_dhost_to_host.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_dhost_to_shared.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_dhost_to_shared.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_host_to_device.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_host_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_host_to_host.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_host_to_shared.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_host_to_shared.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_shared_to_device.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_shared_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_shared_to_dhost.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_shared_to_host.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_shared_to_host.cpp +// CHECK-NEXT: USM/memops2d/memcpy2d_shared_to_shared.cpp +// CHECK-NEXT: USM/pointer_query_descendent_device.cpp +// CHECK-NEXT: USM/usm_pooling.cpp +// CHECK-NEXT: VirtualFunctions/misc/group-barrier.cpp +// CHECK-NEXT: syclcompat/atomic/atomic_arith.cpp +// CHECK-NEXT: syclcompat/atomic/atomic_bitwise.cpp +// CHECK-NEXT: syclcompat/atomic/atomic_class.cpp +// CHECK-NEXT: syclcompat/atomic/atomic_comp_exchange.cpp +// CHECK-NEXT: syclcompat/atomic/atomic_memory_acq_rel.cpp +// CHECK-NEXT: syclcompat/atomic/atomic_minmax.cpp +// CHECK-NEXT: syclcompat/kernel/kernel_lin.cpp +// CHECK-NEXT: syclcompat/launch/launch.cpp +// CHECK-NEXT: syclcompat/launch/launch_policy_lmem.cpp diff --git a/sycl/test/no-xfail-without-tracker.cpp b/sycl/test/no-xfail-without-tracker.cpp index 7cb524dab5c47..feebcbc46750b 100644 --- a/sycl/test/no-xfail-without-tracker.cpp +++ b/sycl/test/no-xfail-without-tracker.cpp @@ -1,5 +1,6 @@ -// This test is intended to ensure that we have no trackers marked as XFAIL +// This test is intended to ensure that we have no tests marked as XFAIL // without a tracker information added to a test. +// For more info see: sycl/test-e2e/README.md // // The format we check is: // XFAIL: lit,features From 850ca83a0f541f1eb62684c02d89d5945cb8ae7b Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Thu, 24 Oct 2024 06:53:46 -0700 Subject: [PATCH 2/8] format --- sycl/test-e2e/Basic/kernel_max_wg_size.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sycl/test-e2e/Basic/kernel_max_wg_size.cpp b/sycl/test-e2e/Basic/kernel_max_wg_size.cpp index 9c8dae09acdc4..5b7039a286865 100644 --- a/sycl/test-e2e/Basic/kernel_max_wg_size.cpp +++ b/sycl/test-e2e/Basic/kernel_max_wg_size.cpp @@ -5,7 +5,9 @@ // https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_intel_grf_size.asciidoc // REQUIRES: arch-intel_gpu_pvc || gpu-intel-dg2 // UNSUPPORTED: cuda || hip -// UNSUPPORTED-TRACKER: INTENDED - This extension is currently implemented in DPC++ only for Intel GPU devices and only when using the Level Zero backend or OpenCL backend. +// UNSUPPORTED-TRACKER: INTENDED - This extension is currently implemented in +// DPC++ only for Intel GPU devices and only when using the Level Zero backend +// or OpenCL backend. // clang-format off #include From 7974dbf12b4dccd27d100ebed40c06ba1999ab89 Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Thu, 24 Oct 2024 07:27:38 -0700 Subject: [PATCH 3/8] apply suggestion --- sycl/test-e2e/Basic/kernel_max_wg_size.cpp | 6 ++--- sycl/test-e2e/README.md | 23 ++++++------------ ...er.cpp => no-unsupported-without-info.cpp} | 24 +++++++++---------- 3 files changed, 22 insertions(+), 31 deletions(-) rename sycl/test/{no-unsupported-without-tracker.cpp => no-unsupported-without-info.cpp} (97%) diff --git a/sycl/test-e2e/Basic/kernel_max_wg_size.cpp b/sycl/test-e2e/Basic/kernel_max_wg_size.cpp index 5b7039a286865..ef837dd1ea739 100644 --- a/sycl/test-e2e/Basic/kernel_max_wg_size.cpp +++ b/sycl/test-e2e/Basic/kernel_max_wg_size.cpp @@ -5,9 +5,9 @@ // https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_intel_grf_size.asciidoc // REQUIRES: arch-intel_gpu_pvc || gpu-intel-dg2 // UNSUPPORTED: cuda || hip -// UNSUPPORTED-TRACKER: INTENDED - This extension is currently implemented in -// DPC++ only for Intel GPU devices and only when using the Level Zero backend -// or OpenCL backend. +// UNSUPPORTED-INTENDED: This extension is currently implemented in DPC++ only +// for Intel GPU devices and only when using the Level Zero backend or OpenCL +// backend. // clang-format off #include diff --git a/sycl/test-e2e/README.md b/sycl/test-e2e/README.md index c6826f4dd249e..6bb3cf7060c78 100644 --- a/sycl/test-e2e/README.md +++ b/sycl/test-e2e/README.md @@ -353,23 +353,13 @@ Some tests may be considered unsupported, e.g.: * the test is flaky or hangs, so it can't be marked with `XFAIL`. In these cases the test can be marked with `UNSUPPORTED`. This mark should be -followed by `UNSUPPORTED-TRACKER`. There are two options: -``` -UNSUPPORTED-TRACKER: INTENDED - -UNSUPPORTED-TRACKER: -``` - -In the first case it should look like: +followed by either `UNSUPPORTED-INTENDED` or `UNSUPPORTED-TRACKER` depending on +whether the test is not intended to be run with some feature at all or it was +temporarily disabled due to some issue. ``` // UNSUPPORTED: cuda, hip -// UNSUPPORTED-TRACKER: INTENDED - only supported by backends with SPIR-V IR +// UNSUPPORTED-INTENDED: only supported by backends with SPIR-V IR -// UNSUPPORTED: gpu -// UNSUPPORTED-TRACKER: INTENDED - the feature works only on CPU & FPGA -``` - -For the second case the tracker should be provided: -``` // Sporadically fails on DG2. // UNSUPPORTED: gpu-intel-dg2 // UNSUPPORTED-TRACKER: https://github.com/intel/llvm/issues/DDDDD @@ -377,5 +367,6 @@ For the second case the tracker should be provided: // UNSUPPORTED-TRACKER: PRJ-1234 ``` -If you add `UNSUPPORTED` without `UNSUPPORTED-TRACKER` directive, -`no-unsupported-without-tracker.cpp` test will fail, notifying you about that. +If you add `UNSUPPORTED` without `UNSUPPORTED-TRACKER` or `UNSUPPORTED-INTENDED` +directive, the `no-unsupported-without-tracker.cpp` test will fail, notifying +you about that. diff --git a/sycl/test/no-unsupported-without-tracker.cpp b/sycl/test/no-unsupported-without-info.cpp similarity index 97% rename from sycl/test/no-unsupported-without-tracker.cpp rename to sycl/test/no-unsupported-without-info.cpp index c69465c3b762c..8bd2671ca361e 100644 --- a/sycl/test/no-unsupported-without-tracker.cpp +++ b/sycl/test/no-unsupported-without-info.cpp @@ -1,10 +1,13 @@ -// This test is intended to ensure that we have no trackers marked as -// UNSUPPORTED without a tracker information added to a test. +// This test is intended to ensure that we have no tests marked as +// UNSUPPORTED without an information added to a test. // For more info see: sycl/test-e2e/README.md // // The format we check is: // UNSUPPORTED: lit,features -// UNSUPPORTED-TRACKER: [GitHub issue URL|Internal tracker ID|INTENDED - reason] +// UNSUPPORTED-TRACKER: [GitHub issue URL|Internal tracker ID] +// *OR* +// UNSUPPORTED: lit,features +// UNSUPPORTED-INTENDED: explanation why the test isn't intended to be run with this feature // // GitHub issue URL format: // https://github.com/owner/repo/issues/12345 @@ -12,9 +15,6 @@ // Internal tracker ID format: // PROJECT-123456 // -// Reason format: -// Just a free form text -// // REQUIRES: linux // // Explanation of the command: @@ -22,9 +22,9 @@ // -I, --include to drop binary files and other unrelated files // - in the result, search for "UNSUPPORTED" again, but invert the result - this // allows us to get the line *after* UNSUPPORTED -// - in those lines, check that UNSUPPORTED-TRACKER is present and correct. Once -// again, invert the search to get all "bad" lines and save the test names in -// the temp file +// - in those lines, check that UNSUPPORTED-TRACKER or UNSUPPORTED-INTENDED is +// present and correct. Once again, invert the search to get all "bad" lines +// and save the test names in the temp file // - make a final count of how many ill-formatted directives there are and // verify that against the reference // - ...and check if the list of improperly UNSUPPORTED tests needs to be updated. @@ -32,8 +32,8 @@ // RUN: grep -rI "UNSUPPORTED:" %S/../test-e2e \ // RUN: -A 1 --include=*.c --include=*.cpp --no-group-separator | \ // RUN: grep -v "UNSUPPORTED:" | \ -// RUN: grep -Pv "UNSUPPORTED-TRACKER:\s+(?:https://github.com/[\w\d-]+/[\w\d-]+/issues/[\d]+)|(?:[\w]+-[\d]+)|(?:INTENDED\s*-\s*.+)" > %t | \ -// RUN: cat %t | wc -l | FileCheck %s --check-prefix NUMBER-OF-UNSUPPORTED-WITHOUT-TRACKER +// RUN: grep -Pv "UNSUPPORTED-TRACKER:\s+(?:https://github.com/[\w\d-]+/[\w\d-]+/issues/[\d]+)|(?:[\w]+-[\d]+)|(?:UNSUPPORTED-INTENDED:\s*.+)" > %t | \ +// RUN: cat %t | wc -l | FileCheck %s --check-prefix NUMBER-OF-UNSUPPORTED-WITHOUT-INFO // RUN: cat %t | sed 's/\.cpp.*/.cpp/' | sort | FileCheck %s // // The number below is a number of tests which are *improperly* UNSUPPORTED, i.e. @@ -54,7 +54,7 @@ // tests to match the required format and in that case you should just update // (i.e. reduce) the number and the list below. // -// NUMBER-OF-UNSUPPORTED-WITHOUT-TRACKER: 484 +// NUMBER-OF-UNSUPPORTED-WITHOUT-INFO: 484 // // List of improperly UNSUPPORTED tests. // Remove the CHECK once the test has been propely UNSUPPORTED. From bc45fad663ec28833a368ce2b96b0b55f0ed7fca Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Fri, 25 Oct 2024 00:59:15 -0700 Subject: [PATCH 4/8] do not use pipe --- sycl/test/no-unsupported-without-info.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/test/no-unsupported-without-info.cpp b/sycl/test/no-unsupported-without-info.cpp index 8bd2671ca361e..22f2d50ffd8f1 100644 --- a/sycl/test/no-unsupported-without-info.cpp +++ b/sycl/test/no-unsupported-without-info.cpp @@ -32,7 +32,7 @@ // RUN: grep -rI "UNSUPPORTED:" %S/../test-e2e \ // RUN: -A 1 --include=*.c --include=*.cpp --no-group-separator | \ // RUN: grep -v "UNSUPPORTED:" | \ -// RUN: grep -Pv "UNSUPPORTED-TRACKER:\s+(?:https://github.com/[\w\d-]+/[\w\d-]+/issues/[\d]+)|(?:[\w]+-[\d]+)|(?:UNSUPPORTED-INTENDED:\s*.+)" > %t | \ +// RUN: grep -Pv "UNSUPPORTED-TRACKER:\s+(?:https://github.com/[\w\d-]+/[\w\d-]+/issues/[\d]+)|(?:[\w]+-[\d]+)|(?:UNSUPPORTED-INTENDED:\s*.+)" > %t // RUN: cat %t | wc -l | FileCheck %s --check-prefix NUMBER-OF-UNSUPPORTED-WITHOUT-INFO // RUN: cat %t | sed 's/\.cpp.*/.cpp/' | sort | FileCheck %s // From 55808c3f226482aeba1eba5c3bfe835e3241c2f8 Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Fri, 25 Oct 2024 07:24:56 -0700 Subject: [PATCH 5/8] move test to another dir --- .../{ => e2e_test_requirements}/no-unsupported-without-info.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sycl/test/{ => e2e_test_requirements}/no-unsupported-without-info.cpp (100%) diff --git a/sycl/test/no-unsupported-without-info.cpp b/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp similarity index 100% rename from sycl/test/no-unsupported-without-info.cpp rename to sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp From 21bdd4e20a65db08565c800482c11b53ed0f3399 Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Fri, 25 Oct 2024 08:56:15 -0700 Subject: [PATCH 6/8] fix path --- sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp b/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp index 22f2d50ffd8f1..47a4449d57a37 100644 --- a/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp +++ b/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp @@ -29,7 +29,7 @@ // verify that against the reference // - ...and check if the list of improperly UNSUPPORTED tests needs to be updated. // -// RUN: grep -rI "UNSUPPORTED:" %S/../test-e2e \ +// RUN: grep -rI "UNSUPPORTED:" %S/../../test-e2e \ // RUN: -A 1 --include=*.c --include=*.cpp --no-group-separator | \ // RUN: grep -v "UNSUPPORTED:" | \ // RUN: grep -Pv "UNSUPPORTED-TRACKER:\s+(?:https://github.com/[\w\d-]+/[\w\d-]+/issues/[\d]+)|(?:[\w]+-[\d]+)|(?:UNSUPPORTED-INTENDED:\s*.+)" > %t From 886f9a2a469043fa3d2a321756804c8d60e3c5aa Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Fri, 25 Oct 2024 23:42:59 -0700 Subject: [PATCH 7/8] update list --- .../e2e_test_requirements/no-unsupported-without-info.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp b/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp index 47a4449d57a37..886c57cf14def 100644 --- a/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp +++ b/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp @@ -54,7 +54,7 @@ // tests to match the required format and in that case you should just update // (i.e. reduce) the number and the list below. // -// NUMBER-OF-UNSUPPORTED-WITHOUT-INFO: 484 +// NUMBER-OF-UNSUPPORTED-WITHOUT-INFO: 486 // // List of improperly UNSUPPORTED tests. // Remove the CHECK once the test has been propely UNSUPPORTED. @@ -259,6 +259,8 @@ // CHECK-NEXT: HostInteropTask/interop-task.cpp // CHECK-NEXT: InOrderEventsExt/get_last_event.cpp // CHECK-NEXT: InvokeSimd/Feature/ImplicitSubgroup/SPMD_invoke_ESIMD_external.cpp +// CHECK-NEXT: InvokeSimd/Regression/ImplicitSubgroup/call_vadd_1d_spill.cpp +// CHECK-NEXT: InvokeSimd/Regression/call_vadd_1d_spill.cpp // CHECK-NEXT: KernelAndProgram/build-log.cpp // CHECK-NEXT: KernelAndProgram/cache-build-result.cpp // CHECK-NEXT: KernelAndProgram/free_function_apis.cpp From 376ac2828d8dee228d1306857e7d8f556cf703d9 Mon Sep 17 00:00:00 2001 From: KornevNikita Date: Mon, 28 Oct 2024 06:15:27 -0700 Subject: [PATCH 8/8] another one number update --- .../test/e2e_test_requirements/no-unsupported-without-info.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp b/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp index 886c57cf14def..e6175e1e8b557 100644 --- a/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp +++ b/sycl/test/e2e_test_requirements/no-unsupported-without-info.cpp @@ -54,7 +54,7 @@ // tests to match the required format and in that case you should just update // (i.e. reduce) the number and the list below. // -// NUMBER-OF-UNSUPPORTED-WITHOUT-INFO: 486 +// NUMBER-OF-UNSUPPORTED-WITHOUT-INFO: 487 // // List of improperly UNSUPPORTED tests. // Remove the CHECK once the test has been propely UNSUPPORTED. @@ -274,6 +274,7 @@ // CHECK-NEXT: KernelAndProgram/undefined-symbol.cpp // CHECK-NEXT: KernelCompiler/kernel_compiler_opencl.cpp // CHECK-NEXT: KernelCompiler/kernel_compiler_sycl.cpp +// CHECK-NEXT: KernelCompiler/kernel_compiler_sycl_jit.cpp // CHECK-NEXT: KernelCompiler/multi_device.cpp // CHECK-NEXT: KernelCompiler/sycl_device_flags.cpp // CHECK-NEXT: LLVMIntrinsicLowering/bitreverse.cpp