| // flags: --hlsl_shader_model 62 |
| enable f16; |
| |
| struct Inner { |
| @size(64) |
| m : mat2x3<f16>, |
| } |
| |
| struct Outer { |
| a : array<Inner, 4>, |
| } |
| |
| @group(0) @binding(0) var<uniform> a : array<Outer, 4>; |
| |
| var<private> counter = 0; |
| fn i() -> i32 { counter++; return counter; } |
| |
| @compute @workgroup_size(1) |
| fn f() { |
| let p_a = &a; |
| let p_a_i = &((*p_a)[i()]); |
| let p_a_i_a = &((*p_a_i).a); |
| let p_a_i_a_i = &((*p_a_i_a)[i()]); |
| let p_a_i_a_i_m = &((*p_a_i_a_i).m); |
| let p_a_i_a_i_m_i = &((*p_a_i_a_i_m)[i()]); |
| |
| |
| let l_a : array<Outer, 4> = *p_a; |
| let l_a_i : Outer = *p_a_i; |
| let l_a_i_a : array<Inner, 4> = *p_a_i_a; |
| let l_a_i_a_i : Inner = *p_a_i_a_i; |
| let l_a_i_a_i_m : mat2x3<f16> = *p_a_i_a_i_m; |
| let l_a_i_a_i_m_i : vec3<f16> = *p_a_i_a_i_m_i; |
| let l_a_i_a_i_m_i_i : f16 = (*p_a_i_a_i_m_i)[i()]; |
| } |