SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h))
  %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
}

%f = @compute @workgroup_size(1, 1, 1) func():void {
  $B2: {
    %4:mat4x3<f16> = load %m
    %5:void = call %tint_store_and_preserve_padding, %out, %4
    ret
  }
}
%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
  $B3: {
    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
    %10:vec3<f16> = access %value_param, 0u
    store %9, %10
    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
    %12:vec3<f16> = access %value_param, 1u
    store %11, %12
    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
    %14:vec3<f16> = access %value_param, 2u
    store %13, %14
    %15:ptr<storage, vec3<f16>, read_write> = access %target, 3u
    %16:vec3<f16> = access %value_param, 3u
    store %15, %16
    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.  *
********************************************************************
