#include <metal_stdlib>

using namespace metal;
struct tint_array_wrapper {
  int arr[4];
};
struct S {
  tint_array_wrapper arr;
};
struct tint_array_wrapper_1 {
  tint_array_wrapper arr[2];
};

void foo() {
  tint_array_wrapper const src = {.arr={}};
  tint_array_wrapper dst = {};
  S dst_struct = {};
  tint_array_wrapper_1 dst_array = {};
  thread tint_array_wrapper* const dst_ptr = &(dst);
  thread S* const dst_struct_ptr = &(dst_struct);
  thread tint_array_wrapper_1* const dst_array_ptr = &(dst_array);
  dst_struct.arr = src;
  dst_array.arr[1] = src;
  *(dst_ptr) = src;
  (*(dst_struct_ptr)).arr = src;
  (*(dst_array_ptr)).arr[0] = src;
}

