HLSL Working Group

2026-07-09 - HLSL Working Group Minutes

Discussion Topics

Meeting Notes

SPIR-V Matrix Orientation

This Week in HLSL

28 PRs were merged across several areas:

  • Offload Test Suit

    • [Utils] Update runner status script after splitbuild merged https://github.com/llvm/offload-test-suite/pull/1345
    • Update XFAILs for fixes to resource handle phis and ConstantBuffer https://github.com/llvm/offload-test-suite/pull/1357
    • Add InterlockedMax tests https://github.com/llvm/offload-test-suite/pull/1358
  • HLSL Frontend

    • [HLSL][NFC] Update test check to be more specific https://github.com/llvm/llvm-project/pull/207232
  • DirectX Backend

    • [DirectX] Add --dx-embed-debug and --dx-pdb-path flags https://github.com/llvm/llvm-project/pull/204166
    • [DirectX] Remove now unreachable blocks in dxil legalize https://github.com/llvm/llvm-project/pull/207259
    • [DirectX] Expand {u,s}mul.with.overflow in DXILIntrinsicExpansion https://github.com/llvm/llvm-project/pull/207297
    • [NFC] Fix dxil-dis/waveactiveballot.ll test https://github.com/llvm/llvm-project/pull/207446
  • SPIR-V Backend

    • [SPIRV] Preserve FP types in atomic load/store instead of casting to integer https://github.com/llvm/llvm-project/pull/194583
    • [SPIR-V] Tie Int64ImageEXT to R64i/R64ui image format, not sampled type https://github.com/llvm/llvm-project/pull/203005
    • [SPIR-V] Add SPV_INTEL_bfloat16_arithmetic for Opencl.std instructions with bfloat16 type https://github.com/llvm/llvm-project/pull/205128
    • [SPIR-V] Fix crash on direct aggregate return of an intrinsic call result https://github.com/llvm/llvm-project/pull/206491
    • [SPIRV] Expand aggregate instructions with mutated-type uses https://github.com/llvm/llvm-project/pull/206835 Add InterlockedMin tests https://github.com/llvm/offload-test-suite/pull/1347
    • [SPIR-V] Fix ArrayStride truncation to 0 for sub-byte element types https://github.com/llvm/llvm-project/pull/207140
    • [SPIR-V] Replace isPipeOrAddressSpaceCastBI hardcoded list with table lookup https://github.com/llvm/llvm-project/pull/207147
    • [SPIR-V] Diagnose stores into read-only storage classes https://github.com/llvm/llvm-project/pull/207331
    • [SPIR-V] Fix truncated LinkageAttributes OpDecorate for numeric-named functions https://github.com/llvm/llvm-project/pull/207332
    • [SPIR-V] Fix invalid OpIMul emitted for i1 multiplication https://github.com/llvm/llvm-project/pull/207388
    • [SPIR-V] Support i64 smul.fix/umul.fix via SPV_ALTERA_arbitrary_precision_integers https://github.com/llvm/llvm-project/pull/207405
    • [SPIR-V] Simplify and fix sign-extension bug in convertCharsToWord https://github.com/llvm/llvm-project/pull/207769
    • [SPIRV] Support atomic exchange of pointers https://github.com/llvm/llvm-project/pull/207830
    • [NFC][SPIRV] Remove dead helper addStringImm(const StringRef &Str, IRBuilder<> &B, std::vector<Value *> &Args) https://github.com/llvm/llvm-project/pull/207923
    • [SPIR-V] Avoid crash on malformed mangled builtin name length https://github.com/llvm/llvm-project/pull/207939
    • [NFC][SPIRV] Use StringRef by value (no const, no &) https://github.com/llvm/llvm-project/pull/207940
    • [NFC][SPIRV] Remove dead helper buildOpMemberDecorate(Register, MachineInstr &, ...) https://github.com/llvm/llvm-project/pull/207952
    • [NFC][SPIRV] Make getVacantFunctionName static https://github.com/llvm/llvm-project/pull/207954
    • [SPIR-V] Add missing Int64Atomics requirement for OpAtomicCompareExchangeWeak https://github.com/llvm/llvm-project/pull/207965
    • [NFC][SPIR-V] Dedupe getConstInt metadata helper into SPIRVUtils https://github.com/llvm/llvm-project/pull/208194