SKIP: FAILED

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

%f = @compute @workgroup_size(1, 1, 1) func():void {
  $B2: {
    %4:mat2x3<f16> = load %m
    %5:void = call %tint_store_and_preserve_padding, %out, %4
    ret
  }
}
%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<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
    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.  *
********************************************************************
