SKIP: FAILED

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