SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %in:ptr<storage, mat2x3<f16>, read> = var @binding_point(0, 0)
  %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 1)
}

%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
  $B2: {
    %4:mat2x3<f16> = load %in
    %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.  *
********************************************************************
