SKIP: FAILED

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

%f = @compute @workgroup_size(1, 1, 1) func():void {
  $B2: {
    %4:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
    %5:mat3x3<f32> = load %4
    %6:mat3x3<f32> = transpose %5
    %t:mat3x3<f32> = let %6
    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
    %9:vec3<f32> = load %8
    %10:vec3<f32> = swizzle %9, zxy
    %11:f32 = length %10
    %l:f32 = let %11
    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
    %14:vec3<f32> = load %13
    %15:vec3<f32> = swizzle %14, zxy
    %16:f32 = access %15, 0u
    %17:f32 = abs %16
    %a:f32 = let %17
    %19:f32 = access %t, 0i, 0u
    %20:f32 = construct %l
    %21:f32 = add %19, %20
    %22:f32 = let %21
    %23:f32 = construct %a
    %24:f32 = add %22, %23
    store %s, %24
    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.  *
********************************************************************
