2026-06-25 - HLSL Working Group Minutes
Discussion Topics
- This week in HLSL
- Denormal handling
Meeting Notes
This Week in HLSL
19 PRs were merged this week across a few areas:
- HLSL Frontend
- Fixed miscompile from emitting
lifetime.startafter copy-in forinoutparameters. - Corrected SPIRV CHECKs in derivative tests.
- Added codegen tests for
ConstantBuffer<T>element access and initialization.
- Fixed miscompile from emitting
- DirectX Backend
- Fixed missing
llvm.dx.resource.getbasepointerhandling.
- Fixed missing
- Debug Info & PDB
- Added DXContainer support and
--dxcontainertollvm-pdbutil.
- Added DXContainer support and
- Offload Test Suite
- New tests: RWByteAddressBuffer 16-bit clobbering check,
isnan()coverage, hull/domain system-value tests, and a mesh shader line-geometry test. - More progress on moving logic out of each target into the generic abstraction layer.
- The split-build feature is live, which should improve build throughput.
- New tests: RWByteAddressBuffer 16-bit clobbering check,
- SPIR-V Backend
- Legalization and lowering fixes including G_PHI legalization and lowering of nested undef in constant aggregates.
- Fixes for verifier/crash cases on indirect calls with aggregate arguments.
For a full list of merged PRs, see the appendix.
There are also 16 newly opened PRs, but 53 currently ongoing PRs which is up from last week.
Denormal Handling
We discussed the Denormal handling RFC on discourse. The proposed solution seems like a reasonable mapping.
Appendix: Merged PRs
HLSL Frontend
- [HLSL] Emit lifetime.start before copy-in for inout parameters (llvm/llvm-project#191917)
- [HLSL] Correct SPIRV CHECKs in derivative tests (llvm/llvm-project#176609)
- [HLSL][NFC] Add codegen test for ConstantBuffer
element access and initialization (llvm/llvm-project#204507) - Warn that the WaveSize attribute is unsupported for the SPIR‑V target (llvm/llvm-project#196004)
DirectX Backend
- [DirectX] Handle llvm.dx.resource.getbasepointer intrinsic in DXILResourceAccess pass (llvm/llvm-project#204732)
Debug Info & PDB
- [llvm-pdbutil] Add DXContainer support to
llvm-pdbutil dump(llvm/llvm-project#200485) - [llvm-pdbutil] Add
--dxcontaineroption tollvm-pdbutil export(llvm/llvm-project#200486)
Offload Test Suite
- Add RWByteAddressBuffer test to check for 16bit data clobbering (llvm/offload-test-suite#1120)
- Adds tests for isnan(). (llvm/offload-test-suite#466)
- Hull and Domain shader system-value tests (llvm/offload-test-suite#1304)
- Create, upload, and read back buffers using generic API in DX12. (llvm/offload-test-suite#1309)
- Add a Mesh Shader test that uses line geometry. (llvm/offload-test-suite#1310)
- Remove upload buffer from resource set (llvm/offload-test-suite#1311)
- Remove unused fields from VulkanDevice::InvocationState. (llvm/offload-test-suite#1324)
- [DX][Metal] Enable array-of-constant-buffers.test (llvm/offload-test-suite#1325)
- Enable split build feature (llvm/offload-test-suite#1328)
SPIR-V Backend
- [SPIR-V] Legalize G_PHI of oversized vectors via fewer-elements (llvm/llvm-project#203993)
- [SPIR-V] Lower undef nested in a constant aggregate (llvm/llvm-project#204377)
- [SPIR-V] Fix crash on void indirect call with aggregate argument (llvm/llvm-project#204388)