| struct S { |
| int arr[4]; |
| }; |
| |
| |
| RWByteAddressBuffer s : register(u0); |
| int foo() { |
| int v[4] = (int[4])0; |
| int tint_symbol[4] = (int[4])0; |
| S dst_struct = (S)0; |
| int dst_array[2][4] = (int[2][4])0; |
| int dst_ptr[4] = tint_symbol; |
| S dst_struct_ptr = dst_struct; |
| int dst_array_ptr[2][4] = dst_array; |
| int src[4] = v; |
| dst_struct.arr = src; |
| int v_1[4] = v; |
| dst_array[1] = v_1; |
| int v_2[4] = v; |
| dst_ptr = v_2; |
| int v_3[4] = v; |
| dst_struct_ptr.arr = v_3; |
| int v_4[4] = v; |
| dst_array_ptr[0] = v_4; |
| return ((dst_ptr[0] + dst_struct_ptr.arr[0]) + dst_array_ptr[0][0]); |
| } |
| |
| [numthreads(1, 1, 1)] |
| void main() { |
| s.Store(0u, asuint(foo())); |
| } |
| |