blob: ee47bd4bb1bd54466bee821a90e8634df7064122 [file] [log] [blame] [edit]
; RUN: opt -S -disable-output -passes="print<dxil-resources>" %s 2>&1 | FileCheck %s
@One.str = private unnamed_addr constant [4 x i8] c"One\00", align 1
@Two.str = private unnamed_addr constant [4 x i8] c"Two\00", align 1
define void @test_typedbuffer() {
; Buffer<uint4> Buf[] : register(t0, space0)
%srv = call target("dx.TypedBuffer", <4 x i32>, 0, 0, 0)
@llvm.dx.resource.handlefrombinding(i32 0, i32 0, i32 -1, i32 0, ptr @One.str)
; CHECK: Resource [[#SRV:]]:
; CHECK: Name: One
; CHECK: Binding:
; CHECK: Record ID: 0
; CHECK: Space: 0
; CHECK: Lower Bound: 0
; CHECK: Size: 4294967295
; CHECK: Globally Coherent: 0
; CHECK: Counter Direction: Unknown
; CHECK: Class: SRV
; CHECK: Kind: Buffer
; CHECK: Element Type: u32
; CHECK: Element Count: 4
; RWBuffer<float4> BufferArray[4294967262] : register(u0, space0)
%uav = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0)
@llvm.dx.resource.handlefrombinding(i32 0, i32 0, i32 4294967262, i32 0, ptr @Two.str)
; CHECK: Resource [[#UAV:]]:
; CHECK: Name: Two
; CHECK: Binding:
; CHECK: Record ID: 0
; CHECK: Space: 0
; CHECK: Lower Bound: 0
; CHECK: Size: 4294967262
; CHECK: Globally Coherent: 0
; CHECK: Counter Direction: Unknown
; CHECK: Class: UAV
; CHECK: Kind: Buffer
; CHECK: IsROV: 0
; CHECK: Element Type: f32
; CHECK: Element Count: 4
ret void
}
; CHECK-DAG: Call bound to [[#SRV]]: %srv =
; CHECK-DAG: Call bound to [[#UAV]]: %uav =
attributes #0 = { nocallback nofree nosync nounwind willreturn memory(none) }