SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
  before:i32 @offset(0)
  m:mat3x2<f16> @offset(4)
  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, mat3x2<f16>, read> = access %u, 2i, 1u
    %4:mat3x2<f16> = load %3
    %5:mat2x3<f16> = transpose %4
    %t:mat2x3<f16> = let %5
    %7:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
    %8:vec2<f16> = load %7
    %9:vec2<f16> = swizzle %8, yx
    %10:f16 = length %9
    %l:f16 = let %10
    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
    %13:vec2<f16> = load %12
    %14:vec2<f16> = swizzle %13, yx
    %15:f16 = access %14, 0u
    %16:f16 = abs %15
    %a:f16 = 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.  *
********************************************************************
