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[int(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[int(0)] = v_4;
  return ((dst_ptr[int(0)] + dst_struct_ptr.arr[int(0)]) + dst_array_ptr[int(0)][int(0)]);
}

[numthreads(1, 1, 1)]
void main() {
  s.Store(0u, asuint(foo()));
}

