llvm / llvm/llvm-project

Fix offload tests marked as XFAIL for intelgpu [tracker]

Open
#182,897 1 comment 0 reactions 2 assignees Claimed by @sarnex View on GitHub
backend:IntelGPU offload openmp:libomptarget
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

This is the current list of offload tests marked as XFAIL for Intel GPUs (as of 2026-05-13):

**Test Status Summary (Non-Fortran Tests Only):**
- **Total Non-Fortran Tests: 355** (out of 502 total, excluding 147 Fortran tests)
- ✅ **Passed: 228 (64.23%)**
- ⚠️ **XFAIL Total: 69 (19.44%)**
- Original XFAIL: 32 (9.01%)
- New XFAIL (converted from UNSUPPORTED): 37 (10.42%)
- 🚫 **UNSUPPORTED: 53 (14.93%)** - Excluding CUDA tests
- ⏱️ **TIMEOUT: 5 (1.41%)**
- 🚫 **N/A: 4 (1.13%)** - CUDA tests not applicable to SPIRV

**Progress:** 📈 +14 tests passing since last update (214→228)

**Impact of changes:**
- 36 tests converted from UNSUPPORTED to XFAIL
- 1 test (api/omp_device_memory.c) changed from TIMEOUT to XFAIL
- Total: 37 additional tests now properly tracked as XFAIL

## XFAIL Tests - Original (32 tests)

| # | Test Name | Issue | Notes | Status |
|:---|:----------|:------|:------|:------:|
| 1 | api/omp_device_alloc.c | | | ⚠️ XFAIL |
| 2 | api/omp_device_managed_memory_alloc.c | | Works at -O0 | ⚠️ XFAIL |
| 3 | api/omp_indirect_call.c | | function pointers are in the wrong AS | ⚠️ XFAIL |
| 4 | api/omp_indirect_func_basic.c | | | ⚠️ XFAIL |
| 5 | api/omp_virtual_func.cpp | | vtables have different AS than what __llvm_omp_indirect_call_lookup expects | ⚠️ XFAIL |
| 6 | api/omp_virtual_func_multiple_inheritance_01.cpp | | | ⚠️ XFAIL |
| 7 | api/omp_virtual_func_multiple_inheritance_02.cpp | | | ⚠️ XFAIL |
| 8 | api/omp_virtual_func_reference.cpp | | | ⚠️ XFAIL |
| 9 | jit/empty_kernel_lvl1.c | | | ⚠️ XFAIL |
| 10 | jit/empty_kernel_lvl2.c | | | ⚠️ XFAIL |
| 11 | jit/type_punning.c | | | ⚠️ XFAIL |
| 12 | mapping/declare_mapper_nested_default_mappers_1.cpp | | | ⚠️ XFAIL |
| 13 | mapping/target_uses_allocator.c | | | ⚠️ XFAIL |
| 14 | offloading/assert.cpp | | | ⚠️ XFAIL |
| 15 | offloading/bug49334.cpp | | | ⚠️ XFAIL |
| 16 | offloading/bug64959_compile_only.c | | Works at -O0 | ⚠️ XFAIL |
| 17 | offloading/complex_reduction.cpp | | | ⚠️ XFAIL |
| 18 | offloading/ctor_dtor_api.cpp | | Works at -O0 | ⚠️ XFAIL |
| 19 | offloading/ctor_dtor_lazy.cpp | | | ⚠️ XFAIL |
| 20 | offloading/cuda_no_devices.c | | | ⚠️ XFAIL |
| 21 | offloading/d2d_memcpy.c | | Works at -O0 | ⚠️ XFAIL |
| 22 | offloading/dyn_groupprivate.cpp | | | ⚠️ XFAIL |
| 23 | offloading/indirect_fp_mapping.c | | | ⚠️ XFAIL |
| 24 | offloading/ompx_bare_ballot_sync.c | | | ⚠️ XFAIL |
| 25 | offloading/ompx_bare_shfl_down_sync.cpp | | | ⚠️ XFAIL |
| 26 | offloading/ompx_saxpy_mixed.c | | | ⚠️ XFAIL |
| 27 | offloading/shared_lib_fp_mapping.c | | | ⚠️ XFAIL |
| 28 | offloading/strided_update/strided_update_count_expression_complex.c | | | ⚠️ XFAIL |
| 29 | offloading/thread_limit.c | | Test is checking for an AMD specific string. Probably change to "blocks and [12,1,1]" | ⚠️ XFAIL |
| 30 | offloading/weak.c | #182899 | Globals are optimized by SPIRV backend | ⚠️ XFAIL |
| 31 | offloading/workshare_chunk.c | | Works at -O0 | ⚠️ XFAIL |
| 32 | offloading/wtime.c | | needs readsteadycounter intrinsic support, hw support | ⚠️ XFAIL |

## XFAIL Tests - New (37 tests)
Tests converted from UNSUPPORTED to XFAIL, now properly tracked.

| # | Test Name | Status |
|:---|:----------|:------:|
| 1 | api/omp_device_memory.c | ⚠️ XFAIL |
| 2 | api/omp_host_call.c | ⚠️ XFAIL |
| 3 | libc/malloc_parallel.c | ⚠️ XFAIL |
| 4 | mapping/reduction_implicit_map.cpp | ⚠️ XFAIL |
| 5 | mapping/target_derefence_array_pointrs.cpp | ⚠️ XFAIL |
| 6 | mapping/target_has_device_addr.c | ⚠️ XFAIL |
| 7 | offloading/atomic-compare-signedness.c | ⚠️ XFAIL |
| 8 | offloading/back2back_distribute.c | ⚠️ XFAIL |
| 9 | offloading/bug49021.cpp | ⚠️ XFAIL |
| 10 | offloading/bug49779.cpp | ⚠️ XFAIL |
| 11 | offloading/bug64959.c | ⚠️ XFAIL |
| 12 | offloading/malloc.c | ⚠️ XFAIL |
| 13 | offloading/multiple_reductions.cpp | ⚠️ XFAIL |
| 14 | offloading/multiple_reductions_simple.c | ⚠️ XFAIL |
| 15 | offloading/parallel_target_teams_reduction.cpp | ⚠️ XFAIL |
| 16 | offloading/parallel_target_teams_reduction_max.cpp | ⚠️ XFAIL |
| 17 | offloading/parallel_target_teams_reduction_min.cpp | ⚠️ XFAIL |
| 18 | offloading/spmdization.c | ⚠️ XFAIL |
| 19 | offloading/std_complex_arithmetic.cpp | ⚠️ XFAIL |
| 20 | offloading/strided_update/strided_update_multidim_offset.c | ⚠️ XFAIL |
| 21 | offloading/test_libc.cpp | ⚠️ XFAIL |
| 22 | sanitizer/kernel_crash_async.c | ⚠️ XFAIL |
| 23 | sanitizer/kernel_crash.c | ⚠️ XFAIL |
| 24 | sanitizer/kernel_crash_many.c | ⚠️ XFAIL |
| 25 | sanitizer/kernel_crash_single.c | ⚠️ XFAIL |
| 26 | sanitizer/kernel_trap_async.c | ⚠️ XFAIL |
| 27 | sanitizer/kernel_trap.c | ⚠️ XFAIL |
| 28 | sanitizer/kernel_trap.cpp | ⚠️ XFAIL |
| 29 | sanitizer/kernel_trap_many.c | ⚠️ XFAIL |
| 30 | sanitizer/ptr_outside_alloc_1.c | ⚠️ XFAIL |
| 31 | sanitizer/ptr_outside_alloc_2.c | ⚠️ XFAIL |
| 32 | sanitizer/use_after_free_1.c | ⚠️ XFAIL |
| 33 | sanitizer/use_after_free_2.c | ⚠️ XFAIL |
| 34 | tools/omp-kernel-replay/record-replay-advanced.cpp | ⚠️ XFAIL |
| 35 | tools/omp-kernel-replay/record-replay-basic.cpp | ⚠️ XFAIL |
| 36 | tools/omp-kernel-replay/record-replay-diff-teams-threads.cpp | ⚠️ XFAIL |
| 37 | tools/omp-kernel-replay/record-replay-diff-threads.cpp | ⚠️ XFAIL |

## Unsupported & Timeout Tests (58 non-Fortran tests)
Tests that remain UNSUPPORTED or timeout.

| # | Test Name | Status | Reason |
|:---|:----------|:------:|:-------|
| 1 | api/amdgpu_code_object.c | 🚫 UNSUPPORTED | REQUIRES: amdgcn-amd-amdhsa |
| 2 | api/is_initial_device.c | 🚫 UNSUPPORTED | REQUIRES: x86_64-unknown-linux-gnu |
| 3 | api/omp_dynamic_shared_memory_mixed_amdgpu.c | 🚫 UNSUPPORTED | REQUIRES: amdgcn-amd-amdhsa |
| 4 | api/omp_dynamic_shared_memory_mixed_nvptx.c | 🚫 UNSUPPORTED | REQUIRES: nvptx64-nvidia-cuda |
| 5 | libc/assert.c | 🚫 UNSUPPORTED | REQUIRES: libc, gpu |
| 6 | libc/fwrite.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 7 | libc/global_ctor_dtor.cpp | 🚫 UNSUPPORTED | REQUIRES: libc |
| 8 | libc/malloc.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 9 | libc/puts.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 10 | libc/rpc_callback.cpp | 🚫 UNSUPPORTED | REQUIRES: libc, gpu |
| 11 | libc/server.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 12 | mapping/auto_zero_copy_apu.cpp | 🚫 UNSUPPORTED | REQUIRES: amdgpu, apu |
| 13 | mapping/auto_zero_copy.cpp | 🚫 UNSUPPORTED | REQUIRES: amdgpu, unified_shared_memory |
| 14 | mapping/auto_zero_copy_globals.cpp | 🚫 UNSUPPORTED | REQUIRES: amdgpu, unified_shared_memory |
| 15 | mapping/is_accessible.cpp | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 16 | mapping/lambda_mapping.cpp | 🚫 UNSUPPORTED | REQUIRES: libc |
| 17 | mapping/map_back_race.cpp | 🚫 UNSUPPORTED | UNSUPPORTED: gpu |
| 18 | mapping/map_both_pointer_pointee.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 19 | mapping/map_ordering_ptee_tgt_data_alloc_tgt_mapper_present_delete_from_to.c | 🚫 UNSUPPORTED | REQUIRES: libomptarget-debug |
| 20 | mapping/map_ptr_and_star_global.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 21 | mapping/map_ptr_and_star_local.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 22 | mapping/map_ptr_and_subscript_global.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 23 | mapping/map_ptr_and_subscript_local.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 24 | mapping/map_ptr_then_ptee_then_attach.c | 🚫 UNSUPPORTED | REQUIRES: debug |
| 25 | mapping/map_structptr_and_member_global.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 26 | mapping/map_structptr_and_member_local.c | 🚫 UNSUPPORTED | REQUIRES: libc |
| 27 | mapping/present/unified_shared_memory.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 28 | offloading/barrier_fence.c | 🚫 UNSUPPORTED | UNSUPPORTED: gpu (conflicting with REQUIRES: gpu) |
| 29 | offloading/bug51781.c | ⏱️ TIMEOUT | Test timeout |
| 30 | offloading/bug51982.c | ⏱️ TIMEOUT | Test timeout |
| 31 | offloading/d2d_memcpy_sync.c | 🚫 UNSUPPORTED | REQUIRES: amdgcn-amd-amdhsa |
| 32 | offloading/default_thread_limit.c | 🚫 UNSUPPORTED | REQUIRES: amdgpu |
| 33 | offloading/dynamic-schedule.cpp | 🚫 UNSUPPORTED | REQUIRES: amdgcn-amd-amdhsa |
| 34 | offloading/dynamic-schedule-non-spmd.cpp | 🚫 UNSUPPORTED | REQUIRES: amdgcn-amd-amdhsa |
| 35 | offloading/force-usm.cpp | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 36 | offloading/fortran/basic_array.c | 🚫 UNSUPPORTED | C file in fortran directory |
| 37 | offloading/generic_multiple_parallel_regions.c | ⏱️ TIMEOUT | Test timeout |
| 38 | offloading/gpupgo/pgo_atomic_teams.c | 🚫 UNSUPPORTED | REQUIRES: amdgpu, pgo |
| 39 | offloading/gpupgo/pgo_atomic_threads.c | 🚫 UNSUPPORTED | REQUIRES: amdgpu, pgo |
| 40 | offloading/gpupgo/pgo_device_and_host.c | 🚫 UNSUPPORTED | REQUIRES: amdgpu, pgo |
| 41 | offloading/gpupgo/pgo_device_only.c | 🚫 UNSUPPORTED | REQUIRES: amdgpu, pgo |
| 42 | offloading/schedule.c | 🚫 UNSUPPORTED | REQUIRES: amdgcn-amd-amdhsa |
| 43 | offloading/single_threaded_for_barrier_hang_1.c | 🚫 UNSUPPORTED | UNSUPPORTED: gpu |
| 44 | offloading/single_threaded_for_barrier_hang_2.c | 🚫 UNSUPPORTED | UNSUPPORTED: gpu |
| 45 | offloading/thread_state_1.c | ⏱️ TIMEOUT | Test timeout |
| 46 | offloading/thread_state_2.c | ⏱️ TIMEOUT | Test timeout |
| 47 | sanitizer/use_after_free_3.c | 🚫 UNSUPPORTED | REQUIRES: large_allocation_memory_pool |
| 48 | unified_shared_memory/api.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 49 | unified_shared_memory/associate_ptr.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 50 | unified_shared_memory/close_enter_exit.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 51 | unified_shared_memory/close_manual.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 52 | unified_shared_memory/close_member.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 53 | unified_shared_memory/close_modifier.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |
| 54 | unified_shared_memory/shared_update.c | 🚫 UNSUPPORTED | REQUIRES: unified_shared_memory |

**UNSUPPORTED Test Categories:**
- **AMD/AMDGPU-specific:** 11 tests (REQUIRES: amdgpu or amdgcn-amd-amdhsa)
- **NVIDIA-specific:** 1 test (REQUIRES: nvptx64-nvidia-cuda)
- **libc requirement:** 14 tests (GPU libc support not available)
- **Unified Shared Memory:** 11 tests (Feature not supported on Intel GPUs)
- **Debug-only:** 2 tests (REQUIRES: debug or libomptarget-debug)
- **Disabled for all GPUs:** 3 tests (UNSUPPORTED: gpu)
- **Other requirements:** 4 tests (x86_64 host, pgo, large memory pool)
- **Timeout:** 5 tests

**Note:** Fortran tests (*.f90) are not included in these tables. 147 Fortran tests are UNSUPPORTED and excluded from all counts.

---

## Recently Fixed Tests (no longer XFAIL)
- ✅ api/omp_indirect_call_table_manual.c (#192502)
- ✅ api/omp_indirect_func_array.c (#192502)
- ✅ api/omp_indirect_func_struct.c (#192502)
- ✅ offloading/ctor_dtor.cpp
- ✅ offloading/interop-print.c
- ✅ offloading/ompx_coords.c (#192450)

## Tests Not Applicable to SPIRV
- 🚫 offloading/CUDA/basic_launch.cu
- 🚫 offloading/CUDA/basic_launch_blocks_and_threads.cu
- 🚫 offloading/CUDA/basic_launch_multi_arg.cu
- 🚫 offloading/CUDA/launch_tu.cu

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.