SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(8) {
  v:vec3<f16> @offset(0)
}

%b1 = block {  # root
  %U:ptr<storage, S, read_write> = var @binding_point(0, 0)
}

%f = func():void -> %b2 {
  %b2 = block {
    %3:ptr<storage, vec3<f16>, read_write> = access %U, 0u
    store %3, vec3<f16>(1.0h, 2.0h, 3.0h)
    %4:ptr<storage, vec3<f16>, read_write> = access %U, 0u
    store_vector_element %4, 0u, 1.0h
    %5:ptr<storage, vec3<f16>, read_write> = access %U, 0u
    store_vector_element %5, 1u, 2.0h
    %6:ptr<storage, vec3<f16>, read_write> = access %U, 0u
    store_vector_element %6, 2u, 3.0h
    ret
  }
}

unhandled variable address space
********************************************************************
*  The tint shader compiler has encountered an unexpected error.   *
*                                                                  *
*  Please help us fix this issue by submitting a bug report at     *
*  crbug.com/tint with the source program that triggered the bug.  *
********************************************************************
