1981bb9dcSXiang Li; RUN: llc %s --filetype=obj -o - | obj2yaml | FileCheck %s 2981bb9dcSXiang Li 3981bb9dcSXiang Li; Make sure resource table is created correctly. 4981bb9dcSXiang Li; CHECK: Resources: 5981bb9dcSXiang Litarget triple = "dxil-unknown-shadermodel6.0-compute" 6981bb9dcSXiang Li 7981bb9dcSXiang Lidefine void @main() #0 { 8981bb9dcSXiang Li 9981bb9dcSXiang Li ; ByteAddressBuffer Buf : register(t8, space1) 10981bb9dcSXiang Li; CHECK: - Type: SRVRaw 11981bb9dcSXiang Li; CHECK: Space: 1 12981bb9dcSXiang Li; CHECK: LowerBound: 8 13981bb9dcSXiang Li; CHECK: UpperBound: 8 14981bb9dcSXiang Li; CHECK: Kind: RawBuffer 15981bb9dcSXiang Li; CHECK: Flags: 16981bb9dcSXiang Li; CHECK: UsedByAtomic64: false 17981bb9dcSXiang Li %srv0 = call target("dx.RawBuffer", i8, 0, 0) 18*aa07f922SJustin Bogner @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_i8_0_0t( 19981bb9dcSXiang Li i32 1, i32 8, i32 1, i32 0, i1 false) 20981bb9dcSXiang Li 21981bb9dcSXiang Li ; struct S { float4 a; uint4 b; }; 22981bb9dcSXiang Li ; StructuredBuffer<S> Buf : register(t2, space4) 23981bb9dcSXiang Li; CHECK: - Type: SRVStructured 24981bb9dcSXiang Li; CHECK: Space: 4 25981bb9dcSXiang Li; CHECK: LowerBound: 2 26981bb9dcSXiang Li; CHECK: UpperBound: 2 27981bb9dcSXiang Li; CHECK: Kind: StructuredBuffer 28981bb9dcSXiang Li; CHECK: Flags: 29981bb9dcSXiang Li; CHECK: UsedByAtomic64: false 30981bb9dcSXiang Li %srv1 = call target("dx.RawBuffer", {<4 x float>, <4 x i32>}, 0, 0) 31*aa07f922SJustin Bogner @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_sl_v4f32v4i32s_0_0t( 32981bb9dcSXiang Li i32 4, i32 2, i32 1, i32 0, i1 false) 33981bb9dcSXiang Li 34981bb9dcSXiang Li ; Buffer<uint4> Buf[24] : register(t3, space5) 35981bb9dcSXiang Li; CHECK: - Type: SRVTyped 36981bb9dcSXiang Li; CHECK: Space: 5 37981bb9dcSXiang Li; CHECK: LowerBound: 3 38981bb9dcSXiang Li; CHECK: UpperBound: 26 39981bb9dcSXiang Li; CHECK: Kind: TypedBuffer 40981bb9dcSXiang Li; CHECK: Flags: 41981bb9dcSXiang Li; CHECK: UsedByAtomic64: false 42981bb9dcSXiang Li %srv2 = call target("dx.TypedBuffer", <4 x i32>, 0, 0, 0) 43*aa07f922SJustin Bogner @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_i32_0_0t( 44981bb9dcSXiang Li i32 5, i32 3, i32 24, i32 0, i1 false) 45981bb9dcSXiang Li 46981bb9dcSXiang Li ; RWBuffer<int> Buf : register(u7, space2) 47981bb9dcSXiang Li; CHECK: - Type: UAVTyped 48981bb9dcSXiang Li; CHECK: Space: 2 49981bb9dcSXiang Li; CHECK: LowerBound: 7 50981bb9dcSXiang Li; CHECK: UpperBound: 7 51981bb9dcSXiang Li; CHECK: Kind: TypedBuffer 52981bb9dcSXiang Li; CHECK: Flags: 53981bb9dcSXiang Li; CHECK: UsedByAtomic64: false 54981bb9dcSXiang Li %uav0 = call target("dx.TypedBuffer", i32, 1, 0, 1) 55*aa07f922SJustin Bogner @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_i32_1_0t( 56981bb9dcSXiang Li i32 2, i32 7, i32 1, i32 0, i1 false) 57981bb9dcSXiang Li 58981bb9dcSXiang Li ; RWBuffer<float4> Buf : register(u5, space3) 59981bb9dcSXiang Li; CHECK: - Type: UAVTyped 60981bb9dcSXiang Li; CHECK: Space: 3 61981bb9dcSXiang Li; CHECK: LowerBound: 5 62981bb9dcSXiang Li; CHECK: UpperBound: 5 63981bb9dcSXiang Li; CHECK: Kind: TypedBuffer 64981bb9dcSXiang Li; CHECK: Flags: 65981bb9dcSXiang Li; CHECK: UsedByAtomic64: false 66981bb9dcSXiang Li %uav1 = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) 67*aa07f922SJustin Bogner @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0( 68981bb9dcSXiang Li i32 3, i32 5, i32 1, i32 0, i1 false) 69981bb9dcSXiang Li 70981bb9dcSXiang Li ; RWBuffer<float4> BufferArray[10] : register(u0, space4) 71981bb9dcSXiang Li; CHECK: - Type: UAVTyped 72981bb9dcSXiang Li; CHECK: Space: 4 73981bb9dcSXiang Li; CHECK: LowerBound: 0 74981bb9dcSXiang Li; CHECK: UpperBound: 9 75981bb9dcSXiang Li; CHECK: Kind: TypedBuffer 76981bb9dcSXiang Li; CHECK: Flags: 77981bb9dcSXiang Li; CHECK: UsedByAtomic64: false 78981bb9dcSXiang Li ; RWBuffer<float4> Buf = BufferArray[0] 79981bb9dcSXiang Li %uav2_1 = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) 80*aa07f922SJustin Bogner @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0( 81981bb9dcSXiang Li i32 4, i32 0, i32 10, i32 0, i1 false) 82981bb9dcSXiang Li ; RWBuffer<float4> Buf = BufferArray[5] 83981bb9dcSXiang Li %uav2_2 = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) 84*aa07f922SJustin Bogner @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0( 85981bb9dcSXiang Li i32 4, i32 0, i32 10, i32 5, i1 false) 86981bb9dcSXiang Li ret void 87981bb9dcSXiang Li} 88981bb9dcSXiang Li 89981bb9dcSXiang Liattributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" } 90981bb9dcSXiang Li 91981bb9dcSXiang Li!dx.valver = !{!0} 92981bb9dcSXiang Li 93981bb9dcSXiang Li!0 = !{i32 1, i32 7} 94