-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Labels
driver-bugBugs that are likely or confirmed GPU driver bugsBugs that are likely or confirmed GPU driver bugs
Description
The tests WaveActiveBallot.Wave32, WaveActiveBallot.Wave64, and WaveActiveBallot.Wave128 started failing on WARP with Clang after llvm/llvm-project@faa4b97 was merged into LLVM.
The change in the IR before and after the commit comes from InstCombine being applied to
Out[3] = WaveActiveBallot(threadID.x % 2 == 1);The commit transforms instances of icmp instructions into trunc to i1, such as
%rem.i = and i32 %1, 1
%cmp8.i = icmp ne i32 %rem.i, 0into
%cmp8.i = trunc i32 %1 to i1This issue also only appears to affect WARP, as can be observed from the following Clang test results on all the machines:
Wave32
╭────┬──────────────────────┬─────────────┬────────────────────────────────┬─────────────┬──────────────────────────────────────╮
│ # │ timestamp │ run-id │ workflow │ status │ test │
├────┼──────────────────────┼─────────────┼────────────────────────────────┼─────────────┼──────────────────────────────────────┤
│ 0 │ 2026-02-03T18:15:57Z │ 21642188487 │ Windows D3D12 Warp Clang │ FAIL │ WaveOps/WaveActiveBallot.Wave32.test │
│ 1 │ 2026-02-03T18:21:13Z │ 21642357057 │ Windows ARM64 D3D12 Warp Clang │ FAIL │ WaveOps/WaveActiveBallot.Wave32.test │
│ 2 │ 2026-02-03T20:11:21Z │ 21646031461 │ Windows D3D12 NVIDIA Clang │ PASS │ WaveOps/WaveActiveBallot.Wave32.test │
│ 3 │ 2026-02-03T20:10:06Z │ 21645986872 │ Windows D3D12 Intel Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 4 │ 2026-02-03T18:19:27Z │ 21642301201 │ Windows D3D12 QC Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 5 │ 2026-02-03T20:46:23Z │ 21647192379 │ macOS Metal Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 6 │ 2026-02-03T18:20:50Z │ 21642345045 │ Windows Vulkan AMD Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 7 │ 2026-02-03T20:10:20Z │ 21645995911 │ Windows Vulkan Intel Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 8 │ 2026-02-03T20:07:07Z │ 21645882341 │ Windows Vulkan NVIDIA Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 9 │ 2026-02-03T18:19:19Z │ 21642296487 │ Windows Vulkan QC Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 10 │ 2026-02-03T18:19:36Z │ 21642305507 │ Windows D3D12 AMD Clang │ XFAIL │ WaveOps/WaveActiveBallot.Wave32.test │
╰────┴──────────────────────┴─────────────┴────────────────────────────────┴─────────────┴──────────────────────────────────────╯
Wave64
╭────┬──────────────────────┬─────────────┬────────────────────────────────┬─────────────┬──────────────────────────────────────╮
│ # │ timestamp │ run-id │ workflow │ status │ test │
├────┼──────────────────────┼─────────────┼────────────────────────────────┼─────────────┼──────────────────────────────────────┤
│ 0 │ 2026-02-03T18:15:57Z │ 21642188487 │ Windows D3D12 Warp Clang │ FAIL │ WaveOps/WaveActiveBallot.Wave64.test │
│ 1 │ 2026-02-03T18:21:13Z │ 21642357057 │ Windows ARM64 D3D12 Warp Clang │ FAIL │ WaveOps/WaveActiveBallot.Wave64.test │
│ 2 │ 2026-02-03T18:19:27Z │ 21642301201 │ Windows D3D12 QC Clang │ PASS │ WaveOps/WaveActiveBallot.Wave64.test │
│ 3 │ 2026-02-03T20:10:06Z │ 21645986872 │ Windows D3D12 Intel Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 4 │ 2026-02-03T20:11:21Z │ 21646031461 │ Windows D3D12 NVIDIA Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 5 │ 2026-02-03T20:46:23Z │ 21647192379 │ macOS Metal Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 6 │ 2026-02-03T18:20:50Z │ 21642345045 │ Windows Vulkan AMD Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 7 │ 2026-02-03T20:10:20Z │ 21645995911 │ Windows Vulkan Intel Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 8 │ 2026-02-03T20:07:07Z │ 21645882341 │ Windows Vulkan NVIDIA Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 9 │ 2026-02-03T18:19:19Z │ 21642296487 │ Windows Vulkan QC Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 10 │ 2026-02-03T18:19:36Z │ 21642305507 │ Windows D3D12 AMD Clang │ XFAIL │ WaveOps/WaveActiveBallot.Wave64.test │
╰────┴──────────────────────┴─────────────┴────────────────────────────────┴─────────────┴──────────────────────────────────────╯
Wave128
╭────┬──────────────────────┬─────────────┬────────────────────────────────┬─────────────┬───────────────────────────────────────╮
│ # │ timestamp │ run-id │ workflow │ status │ test │
├────┼──────────────────────┼─────────────┼────────────────────────────────┼─────────────┼───────────────────────────────────────┤
│ 0 │ 2026-02-03T18:15:57Z │ 21642188487 │ Windows D3D12 Warp Clang │ FAIL │ WaveOps/WaveActiveBallot.Wave128.test │
│ 1 │ 2026-02-03T18:21:13Z │ 21642357057 │ Windows ARM64 D3D12 Warp Clang │ FAIL │ WaveOps/WaveActiveBallot.Wave128.test │
│ 2 │ 2026-02-03T18:19:27Z │ 21642301201 │ Windows D3D12 QC Clang │ PASS │ WaveOps/WaveActiveBallot.Wave128.test │
│ 3 │ 2026-02-03T18:19:36Z │ 21642305507 │ Windows D3D12 AMD Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
│ 4 │ 2026-02-03T20:10:06Z │ 21645986872 │ Windows D3D12 Intel Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
│ 5 │ 2026-02-03T20:11:21Z │ 21646031461 │ Windows D3D12 NVIDIA Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
│ 6 │ 2026-02-03T20:46:23Z │ 21647192379 │ macOS Metal Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
│ 7 │ 2026-02-03T18:20:50Z │ 21642345045 │ Windows Vulkan AMD Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
│ 8 │ 2026-02-03T20:10:20Z │ 21645995911 │ Windows Vulkan Intel Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
│ 9 │ 2026-02-03T20:07:07Z │ 21645882341 │ Windows Vulkan NVIDIA Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
│ 10 │ 2026-02-03T18:19:19Z │ 21642296487 │ Windows Vulkan QC Clang │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave128.test │
╰────┴──────────────────────┴─────────────┴────────────────────────────────┴─────────────┴───────────────────────────────────────╯
Example logs (Windows D3D12 Warp Clang): https://github.com/llvm/offload-test-suite/actions/runs/21642188487/job/62384638556#step:12:770
********************
FAIL: OffloadTest-clang-warp-d3d12 :: WaveOps/WaveActiveBallot.Wave32.test (301 of 335)
******************** TEST 'OffloadTest-clang-warp-d3d12 :: WaveOps/WaveActiveBallot.Wave32.test' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 61
c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\split-file.exe C:\actions-runner\_work\offload-test-suite\offload-test-suite\OffloadTest\test\WaveOps\WaveActiveBallot.Wave32.test C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\split-file.exe' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\OffloadTest\test\WaveOps\WaveActiveBallot.Wave32.test' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp'
# RUN: at line 62
c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\clang-dxc.exe --dxv-path=C:/actions-runner/_work/offload-test-suite/offload-test-suite/DXC/build/bin -T cs_6_6 -Fo C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/source.hlsl
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\clang-dxc.exe' --dxv-path=C:/actions-runner/_work/offload-test-suite/offload-test-suite/DXC/build/bin -T cs_6_6 -Fo 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/source.hlsl'
# .---command stdout------------
# | Signed DxilContainer written to "C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o"
# | Validation succeeded.
# `-----------------------------
# RUN: at line 63
c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\offloader.exe -warp -debug-layer C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/pipeline.yaml C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\offloader.exe' -warp -debug-layer 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/pipeline.yaml' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-warp-d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o'
# .---command stdout------------
# | Using DirectX API
# | Configuring execution on device: Microsoft Basic Render Driver
# | RootSignature created.
# | Descriptor heap created.
# | Command structures created.
# | Event prepared.
# | Creating UAV: { Size = 64, Register = u1, Space = 0, HasCounter = 0 }
# | EltSize = 4 NumElts = 16
# | UAV: HeapIdx = 0 EltSize = 4 NumElts = 16 HasCounter = 0
# | Buffers created.
# | PSO created.
# | Compute command list created.
# | Compute commands executed.
# | Read data back.
# `-----------------------------
# .---command stderr------------
# | Test failed: Test
# | Comparison Rule: BufferExact
# | Expected:
# | ---
# | Name: ExpectedOut
# | Format: UInt32
# | Stride: 4
# | Data: [ 3221225471, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 2863311530,
# | 0, 0, 0 ]
# | OutputProps:
# | Height: 0
# | Width: 0
# | Depth: 0
# | ...
# | Got:
# | ---
# | Name: Out
# | Format: UInt32
# | Stride: 4
# | Data: [ 3221225471, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 4294967294,
# | 0, 0, 0 ]
# | OutputProps:
# | Height: 0
# | Width: 0
# | Depth: 0
# | ...
# | Full Hex 64bit representation of Expected Buffer Values:
# | [ 0xbfffffff, 0x0, 0x0, 0x0, 0xffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaaaaaaaa, 0x0, 0x0, 0x0 ]
# | Full Hex 64bit representation of Actual Buffer Values:
# | [ 0xbfffffff, 0x0, 0x0, 0x0, 0xffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffe, 0x0, 0x0, 0x0 ]
# |
# `-----------------------------
# error: command failed with exit status: 1
--
Metadata
Metadata
Assignees
Labels
driver-bugBugs that are likely or confirmed GPU driver bugsBugs that are likely or confirmed GPU driver bugs
Type
Projects
Status
No status