SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
  m:mat3x2<f32> @offset(0)
}

Outer = struct @align(8) {
  a:array<Inner, 4> @offset(0)
}

$B1: {  # root
  %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
}

%f = @compute @workgroup_size(1, 1, 1) func():void {
  $B2: {
    %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
    %4:ptr<uniform, Outer, read> = access %p_a, 3i
    %p_a_3:ptr<uniform, Outer, read> = let %4
    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
    %10:ptr<uniform, mat3x2<f32>, read> = access %p_a_3_a_2, 0u
    %p_a_3_a_2_m:ptr<uniform, mat3x2<f32>, read> = let %10
    %12:ptr<uniform, vec2<f32>, read> = access %p_a_3_a_2_m, 1i
    %p_a_3_a_2_m_1:ptr<uniform, vec2<f32>, read> = let %12
    %14:array<Outer, 4> = load %p_a
    %l_a:array<Outer, 4> = let %14
    %16:Outer = load %p_a_3
    %l_a_3:Outer = let %16
    %18:array<Inner, 4> = load %p_a_3_a
    %l_a_3_a:array<Inner, 4> = let %18
    %20:Inner = load %p_a_3_a_2
    %l_a_3_a_2:Inner = let %20
    %22:mat3x2<f32> = load %p_a_3_a_2_m
    %l_a_3_a_2_m:mat3x2<f32> = let %22
    %24:vec2<f32> = load %p_a_3_a_2_m_1
    %l_a_3_a_2_m_1:vec2<f32> = let %24
    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
    %l_a_3_a_2_m_1_0:f32 = let %26
    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.  *
********************************************************************
