@@ -28,8 +28,7 @@ struct C : B {
2828
2929float4 main () : SV_Target {
3030 B b;
31- // CHECK: [[A_ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_A %b %uint_0
32- // CHECK: [[base_ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[A_ptr]] %int_0
31+ // CHECK: [[base_ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %b %int_0 %int_0
3332// CHECK: OpStore [[base_ptr]] {{%[0-9]+}}
3433 b.base = float4 (1 , 1 , 0 , 1 );
3534// CHECK: [[derived_ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %b %int_1
@@ -42,12 +41,10 @@ float4 main() : SV_Target {
4241 b.SetDerived (float4 (1 , 0 , 1 , 1 ));
4342
4443 C c;
45- // CHECK: [[A_ptr_0:%[0-9]+]] = OpAccessChain %_ptr_Function_A %c %uint_0 %uint_0
46- // CHECK: [[base_ptr_0:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[A_ptr_0]] %int_0
44+ // CHECK: [[base_ptr_0:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %c %int_0 %int_0 %int_0
4745// CHECK: OpStore [[base_ptr_0]] {{%[0-9]+}}
4846 c.base = float4 (0 ,0 ,0 ,0 );
49- // CHECK: [[B_ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_B %c %uint_0
50- // CHECK: [[derived_ptr_0:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[B_ptr]] %int_1
47+ // CHECK: [[derived_ptr_0:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %c %int_0 %int_1
5148// CHECK: OpStore [[derived_ptr_0]] {{%[0-9]+}}
5249 c.derived = float4 (0 ,0 ,0 ,0 );
5350// CHECK: [[c_value_ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %c %int_1
@@ -76,8 +73,7 @@ float4 main() : SV_Target {
7673// CHECK-NEXT: %v = OpFunctionParameter %_ptr_Function_v4float
7774// CHECK-NEXT: %bb_entry_0 = OpLabel
7875// CHECK-NEXT: [[v:%[0-9]+]] = OpLoad %v4float %v
79- // CHECK-NEXT: [[A_ptr_1:%[0-9]+]] = OpAccessChain %_ptr_Function_A %param_this %uint_0
80- // CHECK-NEXT: [[base_ptr_1:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[A_ptr_1]] %int_0
76+ // CHECK-NEXT: [[base_ptr_1:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %param_this %int_0 %int_0
8177// CHECK-NEXT: OpStore [[base_ptr_1]] [[v]]
8278// CHECK-NEXT: OpReturn
8379// CHECK-NEXT: OpFunctionEnd
@@ -100,8 +96,7 @@ float4 main() : SV_Target {
10096// CHECK-NEXT: %v_1 = OpFunctionParameter %_ptr_Function_v4float
10197// CHECK-NEXT: %bb_entry_2 = OpLabel
10298// CHECK-NEXT: [[v_1:%[0-9]+]] = OpLoad %v4float %v_1
103- // CHECK-NEXT: [[A_ptr_2:%[0-9]+]] = OpAccessChain %_ptr_Function_A %param_this_1 %uint_0 %uint_0
104- // CHECK-NEXT: [[base_ptr_2:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[A_ptr_2]] %int_0
99+ // CHECK-NEXT: [[base_ptr_2:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %param_this_1 %int_0 %int_0 %int_0
105100// CHECK-NEXT: OpStore [[base_ptr_2]] [[v_1]]
106101// CHECK-NEXT: OpReturn
107102// CHECK-NEXT: OpFunctionEnd
@@ -112,8 +107,7 @@ float4 main() : SV_Target {
112107// CHECK-NEXT: %v_2 = OpFunctionParameter %_ptr_Function_v4float
113108// CHECK-NEXT: %bb_entry_3 = OpLabel
114109// CHECK-NEXT: [[v_2:%[0-9]+]] = OpLoad %v4float %v_2
115- // CHECK-NEXT: [[B_ptr_0:%[0-9]+]] = OpAccessChain %_ptr_Function_B %param_this_2 %uint_0
116- // CHECK-NEXT: [[derived_ptr_2:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[B_ptr_0]] %int_1
110+ // CHECK-NEXT: [[derived_ptr_2:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %param_this_2 %int_0 %int_1
117111// CHECK-NEXT: OpStore [[derived_ptr_2]] [[v_2]]
118112// CHECK-NEXT: OpReturn
119113// CHECK-NEXT: OpFunctionEnd
@@ -133,8 +127,7 @@ float4 main() : SV_Target {
133127// CHECK: %B_GetBase = OpFunction
134128// CHECK-NEXT: %param_this_4 = OpFunctionParameter %_ptr_Function_B
135129// CHECK-NEXT: %bb_entry_5 = OpLabel
136- // CHECK-NEXT: [[A_ptr_3:%[0-9]+]] = OpAccessChain %_ptr_Function_A %param_this_4 %uint_0
137- // CHECK-NEXT: [[base_ptr_3:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[A_ptr_3]] %int_0
130+ // CHECK-NEXT: [[base_ptr_3:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %param_this_4 %int_0 %int_0
138131// CHECK-NEXT: [[base:%[0-9]+]] = OpLoad %v4float [[base_ptr_3]]
139132// CHECK-NEXT: OpReturnValue [[base]]
140133// CHECK-NEXT: OpFunctionEnd
@@ -152,8 +145,7 @@ float4 main() : SV_Target {
152145// CHECK: %C_GetBase = OpFunction
153146// CHECK-NEXT: %param_this_6 = OpFunctionParameter %_ptr_Function_C
154147// CHECK-NEXT: %bb_entry_7 = OpLabel
155- // CHECK-NEXT: [[A_ptr_4:%[0-9]+]] = OpAccessChain %_ptr_Function_A %param_this_6 %uint_0 %uint_0
156- // CHECK-NEXT: [[base_ptr_4:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[A_ptr_4]] %int_0
148+ // CHECK-NEXT: [[base_ptr_4:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %param_this_6 %int_0 %int_0 %int_0
157149// CHECK-NEXT: [[base_0:%[0-9]+]] = OpLoad %v4float [[base_ptr_4]]
158150// CHECK-NEXT: OpReturnValue [[base_0]]
159151// CHECK-NEXT: OpFunctionEnd
@@ -162,8 +154,7 @@ float4 main() : SV_Target {
162154// CHECK: %C_GetDerived = OpFunction
163155// CHECK-NEXT: %param_this_7 = OpFunctionParameter %_ptr_Function_C
164156// CHECK-NEXT: %bb_entry_8 = OpLabel
165- // CHECK-NEXT: [[B_ptr_1:%[0-9]+]] = OpAccessChain %_ptr_Function_B %param_this_7 %uint_0
166- // CHECK-NEXT: [[derived_ptr_4:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float [[B_ptr_1]] %int_1
157+ // CHECK-NEXT: [[derived_ptr_4:%[0-9]+]] = OpAccessChain %_ptr_Function_v4float %param_this_7 %int_0 %int_1
167158// CHECK-NEXT: [[derived_0:%[0-9]+]] = OpLoad %v4float [[derived_ptr_4]]
168159// CHECK-NEXT: OpReturnValue [[derived_0]]
169160// CHECK-NEXT: OpFunctionEnd
0 commit comments