SKIP: FAILED

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

%f1 = func(%a:array<f32, 4>):f32 {
  $B2: {
    %4:f32 = access %a, 3i
    ret %4
  }
}
%f2 = func(%a_1:array<array<f32, 4>, 3>):f32 {  # %a_1: 'a'
  $B3: {
    %7:f32 = access %a_1, 2i, 3i
    ret %7
  }
}
%f3 = func(%a_2:array<array<array<f32, 4>, 3>, 2>):f32 {  # %a_2: 'a'
  $B4: {
    %10:f32 = access %a_2, 1i, 2i, 3i
    ret %10
  }
}
%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
  $B5: {
    %a1:array<f32, 4> = let array<f32, 4>(0.0f)
    %a2:array<array<f32, 4>, 3> = let array<array<f32, 4>, 3>(array<f32, 4>(0.0f))
    %a3:array<array<array<f32, 4>, 3>, 2> = let array<array<array<f32, 4>, 3>, 2>(array<array<f32, 4>, 3>(array<f32, 4>(0.0f)))
    %15:f32 = call %f1, %a1
    %v1:f32 = let %15
    %17:f32 = call %f2, %a2
    %v2:f32 = let %17
    %19:f32 = call %f3, %a3
    %v3:f32 = let %19
    %21:f32 = add %v1, %v2
    %22:f32 = add %21, %v3
    store %s, %22
    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.  *
********************************************************************
