|
3 | 3 |
|
4 | 4 | // NOTE: SPIRV codegen for resource types is not yet implemented
|
5 | 5 |
|
6 |
| -ByteAddressBuffer Buffer: register(t0); |
| 6 | +ByteAddressBuffer Buffer0: register(t0); |
| 7 | +RWByteAddressBuffer Buffer1: register(u1, space2); |
| 8 | +RasterizerOrderedByteAddressBuffer Buffer2: register(u3, space4); |
7 | 9 |
|
8 | 10 | // CHECK: "class.hlsl::ByteAddressBuffer" = type { target("dx.RawBuffer", i8, 0, 0) }
|
| 11 | +// CHECK: "class.hlsl::RWByteAddressBuffer" = type { target("dx.RawBuffer", i8, 1, 0) } |
| 12 | +// CHECK: "class.hlsl::RasterizerOrderedByteAddressBuffer" = type { target("dx.RawBuffer", i8, 1, 1) } |
9 | 13 |
|
10 |
| -// CHECK: @Buffer = global %"class.hlsl::ByteAddressBuffer" zeroinitializer, align 4 |
| 14 | +// CHECK: @Buffer0 = global %"class.hlsl::ByteAddressBuffer" zeroinitializer, align 4 |
| 15 | +// CHECK: @Buffer1 = global %"class.hlsl::RWByteAddressBuffer" zeroinitializer, align 4 |
| 16 | +// CHECK: @Buffer2 = global %"class.hlsl::RasterizerOrderedByteAddressBuffer" zeroinitializer, align 4 |
11 | 17 |
|
12 | 18 | // CHECK: define internal void @_GLOBAL__sub_I_ByteAddressBuffers_constructors.hlsl()
|
13 | 19 | // CHECK: entry:
|
14 | 20 | // CHECK: call void @_init_resource_bindings()
|
15 | 21 |
|
16 | 22 | // CHECK: define internal void @_init_resource_bindings() {
|
17 | 23 | // CHECK-NEXT: entry:
|
18 |
| -// CHECK-DXIL-NEXT: %Buffer_h = call target("dx.RawBuffer", i8, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_0_0t(i32 0, i32 0, i32 1, i32 0, i1 false) |
19 |
| -// CHECK-DXIL-NEXT: store target("dx.RawBuffer", i8, 0, 0) %Buffer_h, ptr @Buffer, align 4 |
| 24 | +// CHECK-DXIL-NEXT: %Buffer0_h = call target("dx.RawBuffer", i8, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_0_0t(i32 0, i32 0, i32 1, i32 0, i1 false) |
| 25 | +// CHECK-DXIL-NEXT: store target("dx.RawBuffer", i8, 0, 0) %Buffer0_h, ptr @Buffer0, align 4 |
| 26 | +// CHECK-DXIL-NEXT: %Buffer1_h = call target("dx.RawBuffer", i8, 1, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_1_0t(i32 2, i32 1, i32 1, i32 0, i1 false) |
| 27 | +// CHECK-DXIL-NEXT: store target("dx.RawBuffer", i8, 1, 0) %Buffer1_h, ptr @Buffer1, align 4 |
| 28 | +// CHECK-DXIL-NEXT: %Buffer2_h = call target("dx.RawBuffer", i8, 1, 1) @llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_1_1t(i32 4, i32 3, i32 1, i32 0, i1 false) |
| 29 | +// CHECK-DXIL-NEXT: store target("dx.RawBuffer", i8, 1, 1) %Buffer2_h, ptr @Buffer2, align 4 |
0 commit comments