33
44
55StructuredBuffer<float > Buf : register (t10);
6+ RWStructuredBuffer <float > Buf2 : register (u5, space1);
67
78#ifndef SPIRV
8- // NOTE: SPIRV codegen for resource types with counter variable is not yet implemented
9- RWStructuredBuffer <float > Buf2 : register (u5, space1);
9+ // NOTE: SPIRV codegen for these resource types is not implemented yet.
1010AppendStructuredBuffer <float > Buf3 : register (u3);
1111ConsumeStructuredBuffer <float > Buf4 : register (u4);
1212RasterizerOrderedStructuredBuffer <float > Buf5 : register (u1, space2);
@@ -19,10 +19,11 @@ RasterizerOrderedStructuredBuffer<float> Buf5 : register(u1, space2);
1919// CHECK-DXIL: %"class.hlsl::RasterizerOrderedStructuredBuffer" = type { target("dx.RawBuffer", float, 1, 1) }
2020
2121// CHECK-SPIRV: %"class.hlsl::StructuredBuffer" = type { target("spirv.VulkanBuffer", [0 x float], 12, 0) }
22+ // CHECK-SPIRV: %"class.hlsl::RWStructuredBuffer" = type { target("spirv.VulkanBuffer", [0 x float], 12, 1) }
2223
2324
2425// CHECK: @_ZL3Buf = internal global %"class.hlsl::StructuredBuffer" poison
25- // CHECK-DXIL : @_ZL4Buf2 = internal global %"class.hlsl::RWStructuredBuffer" poison, align 4
26+ // CHECK: @_ZL4Buf2 = internal global %"class.hlsl::RWStructuredBuffer" poison
2627// CHECK-DXIL: @_ZL4Buf3 = internal global %"class.hlsl::AppendStructuredBuffer" poison, align 4
2728// CHECK-DXIL: @_ZL4Buf4 = internal global %"class.hlsl::ConsumeStructuredBuffer" poison, align 4
2829// CHECK-DXIL: @_ZL4Buf5 = internal global %"class.hlsl::RasterizerOrderedStructuredBuffer" poison, align 4
@@ -33,9 +34,11 @@ RasterizerOrderedStructuredBuffer<float> Buf5 : register(u1, space2);
3334// CHECK-SPIRV: [[H:%.*]] = call target("spirv.VulkanBuffer", [0 x float], 12, 0) @llvm.spv.resource.handlefrombinding.tspirv.VulkanBuffer_a0f32_12_0t(i32 0, i32 10, i32 1, i32 0, i1 false)
3435// CHECK-SPIRV: store target("spirv.VulkanBuffer", [0 x float], 12, 0) [[H]], ptr @_ZL3Buf, align 8
3536
36- // CHECK-DXIL : define internal void @_init_resource__ZL4Buf2()
37+ // CHECK: define internal void @_init_resource__ZL4Buf2()
3738// CHECK-DXIL: [[H:%.*]] = call target("dx.RawBuffer", float, 1, 0) @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_f32_1_0t(i32 1, i32 5, i32 1, i32 0, i1 false)
3839// CHECK-DXIL: store target("dx.RawBuffer", float, 1, 0) [[H]], ptr @_ZL4Buf2, align 4
40+ // CHECK-SPIRV: [[H:%.*]] = call target("spirv.VulkanBuffer", [0 x float], 12, 1) @llvm.spv.resource.handlefrombinding.tspirv.VulkanBuffer_a0f32_12_1t(i32 1, i32 5, i32 1, i32 0, i1 false)
41+ // CHECK-SPIRV: store target("spirv.VulkanBuffer", [0 x float], 12, 1) [[H]], ptr @_ZL4Buf2, align 8
3942
4043// CHECK-DXIL: define internal void @_init_resource__ZL4Buf3()
4144// CHECK-DXIL: [[H:%.*]] = call target("dx.RawBuffer", float, 1, 0) @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_f32_1_0t(i32 0, i32 3, i32 1, i32 0, i1 false)
@@ -61,7 +64,7 @@ RasterizerOrderedStructuredBuffer<float> Buf5 : register(u1, space2);
6164
6265// CHECK: define {{.*}} void @_GLOBAL__sub_I_StructuredBuffers_constructors.hlsl()
6366// CHECK: call {{.*}} @_init_resource__ZL3Buf()
64- // CHECK-DXIL : call void @_init_resource__ZL4Buf2()
67+ // CHECK: call {{.*}} @_init_resource__ZL4Buf2()
6568// CHECK-DXIL: call void @_init_resource__ZL4Buf3()
6669// CHECK-DXIL: call void @_init_resource__ZL4Buf4()
6770// CHECK-DXIL: call void @_init_resource__ZL4Buf5()
0 commit comments