Justin Bogner 507373306e
[DirectX] Introduce dx.Padding type (#160957)
This introduces the `dx.Padding` type as an alternative to the
`dx.Layout` types that are currently used for cbuffers. Later, we'll
remove the `dx.Layout` types completely, but making the backend handle
either makes it easier to stage the necessary changes to get there.

See #147352 for details.
2025-10-16 12:31:54 -06:00

27 lines
954 B
LLVM

; RUN: llc %s --filetype=obj -o - | obj2yaml | FileCheck %s
; Check that resources are emitted to the object in the order that matches what
; the DXIL validator expects: CBuffers, Samplers, SRVs, and then UAVs.
; CHECK: Resources:
; CHECK: - Type: CBV
; TODO: - Type: Sampler
; CHECK: - Type: SRVRaw
; CHECK: - Type: UAVTyped
target triple = "dxil-unknown-shadermodel6.0-compute"
define void @main() #0 {
%uav0 = call target("dx.TypedBuffer", i32, 1, 0, 1)
@llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_i32_1_0t(
i32 2, i32 7, i32 1, i32 0, ptr null)
%srv0 = call target("dx.RawBuffer", i8, 0, 0)
@llvm.dx.resource.handlefrombinding.tdx.RawBuffer_i8_0_0t(
i32 1, i32 8, i32 1, i32 0, ptr null)
%cbuf = call target("dx.CBuffer", <{ float }>)
@llvm.dx.resource.handlefrombinding(i32 3, i32 2, i32 1, i32 0, ptr null)
ret void
}
attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }