SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
  before:i32 @offset(0)
  m:mat2x2<f32> @offset(8)
  after:i32 @offset(64)
}

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

%f = @compute @workgroup_size(1, 1, 1) func():void {
  $B2: {
    %3:ptr<uniform, mat2x2<f32>, read> = access %u, 2i, 1u
    %4:mat2x2<f32> = load %3
    %5:mat2x2<f32> = transpose %4
    %t:mat2x2<f32> = let %5
    %7:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
    %8:vec2<f32> = load %7
    %9:vec2<f32> = swizzle %8, yx
    %10:f32 = length %9
    %l:f32 = let %10
    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
    %13:vec2<f32> = load %12
    %14:vec2<f32> = swizzle %13, yx
    %15:f32 = access %14, 0u
    %16:f32 = abs %15
    %a:f32 = let %16
    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.  *
********************************************************************
