SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %m:ptr<uniform, mat4x2<f32>, 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, mat4x2<f32>, read> = let %m
    %9:ptr<uniform, vec2<f32>, read> = access %p_m, 1i
    %p_m_1:ptr<uniform, vec2<f32>, read> = let %9
    %11:mat4x2<f32> = load %p_m
    %l_m:mat4x2<f32> = let %11
    %13:vec2<f32> = load %p_m_1
    %l_m_1:vec2<f32> = 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.  *
********************************************************************
