44// likely change once subscript operators are properly implemented (llvm/llvm-project#95956)
55// and theinterim field of the contained type is removed.
66
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)
2020
2121StructuredBuffer<int16_t> BufI16;
2222StructuredBuffer<uint16_t> BufU16;
@@ -40,19 +40,19 @@ StructuredBuffer<float3> BufF32x3;
4040
4141[numthreads (1 ,1 ,1 )]
4242void 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];
5656}
5757
5858// CHECK: !{{[0-9]+}} = !{ptr @BufI16, i32 10, i32 2,
0 commit comments