SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %m:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
  %counter:ptr<private, i32, read_write> = var, 0i
}

%i = func():i32 {
  $B2: {
    %4:i32 = load %counter
    %5:i32 = add %4, 1i
    store %counter, %5
    %6:i32 = load %counter
    ret %6
  }
}
%f = @compute @workgroup_size(1, 1, 1) func():void {
  $B3: {
    %p_m:ptr<uniform, mat4x4<f16>, read> = let %m
    %9:ptr<uniform, vec4<f16>, read> = access %p_m, 1i
    %p_m_1:ptr<uniform, vec4<f16>, read> = let %9
    %11:mat4x4<f16> = load %p_m
    %l_m:mat4x4<f16> = let %11
    %13:vec4<f16> = load %p_m_1
    %l_m_1:vec4<f16> = let %13
    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.  *
********************************************************************
