4
4
// likely change once subscript operators are properly implemented (llvm/llvm-project#95956)
5
5
// and theinterim field of the contained type is removed.
6
6
7
- // CHECK: %"class.hlsl::StructuredBuffer" = type <{ target("dx.RawBuffer", i16, 1 , 0)
8
- // CHECK: %"class.hlsl::StructuredBuffer.0" = type <{ target("dx.RawBuffer", i16, 1 , 0)
9
- // CHECK: %"class.hlsl::StructuredBuffer.2" = type { target("dx.RawBuffer", i32, 1 , 0)
10
- // CHECK: %"class.hlsl::StructuredBuffer.3" = type { target("dx.RawBuffer", i32, 1 , 0)
11
- // CHECK: %"class.hlsl::StructuredBuffer.4" = type { target("dx.RawBuffer", i64, 1 , 0)
12
- // CHECK: %"class.hlsl::StructuredBuffer.5" = type { target("dx.RawBuffer", i64, 1 , 0)
13
- // CHECK: %"class.hlsl::StructuredBuffer.6" = type <{ target("dx.RawBuffer", half, 1 , 0)
14
- // CHECK: %"class.hlsl::StructuredBuffer.8" = type { target("dx.RawBuffer", float, 1 , 0)
15
- // CHECK: %"class.hlsl::StructuredBuffer.9" = type { target("dx.RawBuffer", double, 1 , 0)
16
- // CHECK: %"class.hlsl::StructuredBuffer.10" = type { target("dx.RawBuffer", <4 x i16>, 1 , 0)
17
- // CHECK: %"class.hlsl::StructuredBuffer.11" = type { target("dx.RawBuffer", <3 x i32>, 1 , 0)
18
- // CHECK: %"class.hlsl::StructuredBuffer.12" = type { target("dx.RawBuffer", <2 x half>, 1 , 0)
19
- // CHECK: %"class.hlsl::StructuredBuffer.13" = type { target("dx.RawBuffer", <3 x float>, 1 , 0)
7
+ // CHECK: %"class.hlsl::StructuredBuffer" = type <{ target("dx.RawBuffer", i16, 0 , 0)
8
+ // CHECK: %"class.hlsl::StructuredBuffer.0" = type <{ target("dx.RawBuffer", i16, 0 , 0)
9
+ // CHECK: %"class.hlsl::StructuredBuffer.2" = type { target("dx.RawBuffer", i32, 0 , 0)
10
+ // CHECK: %"class.hlsl::StructuredBuffer.3" = type { target("dx.RawBuffer", i32, 0 , 0)
11
+ // CHECK: %"class.hlsl::StructuredBuffer.4" = type { target("dx.RawBuffer", i64, 0 , 0)
12
+ // CHECK: %"class.hlsl::StructuredBuffer.5" = type { target("dx.RawBuffer", i64, 0 , 0)
13
+ // CHECK: %"class.hlsl::StructuredBuffer.6" = type <{ target("dx.RawBuffer", half, 0 , 0)
14
+ // CHECK: %"class.hlsl::StructuredBuffer.8" = type { target("dx.RawBuffer", float, 0 , 0)
15
+ // CHECK: %"class.hlsl::StructuredBuffer.9" = type { target("dx.RawBuffer", double, 0 , 0)
16
+ // CHECK: %"class.hlsl::StructuredBuffer.10" = type { target("dx.RawBuffer", <4 x i16>, 0 , 0)
17
+ // CHECK: %"class.hlsl::StructuredBuffer.11" = type { target("dx.RawBuffer", <3 x i32>, 0 , 0)
18
+ // CHECK: %"class.hlsl::StructuredBuffer.12" = type { target("dx.RawBuffer", <2 x half>, 0 , 0)
19
+ // CHECK: %"class.hlsl::StructuredBuffer.13" = type { target("dx.RawBuffer", <3 x float>, 0 , 0)
20
20
21
21
StructuredBuffer<int16_t> BufI16;
22
22
StructuredBuffer<uint16_t> BufU16;
@@ -40,19 +40,19 @@ StructuredBuffer<float3> BufF32x3;
40
40
41
41
[numthreads (1 ,1 ,1 )]
42
42
void main (int GI : SV_GroupIndex ) {
43
- BufI16[GI] = 0 ;
44
- BufU16[GI] = 0 ;
45
- BufI32[GI] = 0 ;
46
- BufU32[GI] = 0 ;
47
- BufI64[GI] = 0 ;
48
- BufU64[GI] = 0 ;
49
- BufF16[GI] = 0 ;
50
- BufF32[GI] = 0 ;
51
- BufF64[GI] = 0 ;
52
- BufI16x4[GI] = 0 ;
53
- BufU32x3[GI] = 0 ;
54
- BufF16x2[GI] = 0 ;
55
- BufF32x3[GI] = 0 ;
43
+ int16_t v1 = BufI16[GI];
44
+ uint16_t v2 = BufU16[GI];
45
+ int v3 = BufI32[GI];
46
+ uint v4 = BufU32[GI];
47
+ int64_t v5 = BufI64[GI];
48
+ uint64_t v6 = BufU64[GI];
49
+ half v7 = BufF16[GI];
50
+ float v8 = BufF32[GI];
51
+ double v9 = BufF64[GI];
52
+ vector <int16_t, 4 > v10 = BufI16x4[GI];
53
+ vector < int , 3 > v11 = BufU32x3[GI];
54
+ half2 v12 = BufF16x2[GI];
55
+ float3 v13 = BufF32x3[GI];
56
56
}
57
57
58
58
// CHECK: !{{[0-9]+}} = !{ptr @BufI16, i32 10, i32 2,
0 commit comments