SKIP: FAILED

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

%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
  $B2: {
    %5:bool = eq %tint_local_index, 0u
    if %5 [t: $B3] {  # if_1
      $B3: {  # true
        store %w, mat3x3<f16>(vec3<f16>(0.0h))
        exit_if  # if_1
      }
    }
    %6:void = msl.threadgroup_barrier 4u
    %7:mat3x3<f16> = load %u
    store %w, %7
    %8:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i
    %10:vec3<f16> = load %9
    store %8, %10
    %11:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i
    %13:vec3<f16> = load %12
    %14:vec3<f16> = swizzle %13, zxy
    store %11, %14
    %15:ptr<workgroup, vec3<f16>, read_write> = access %w, 0i
    %16:ptr<uniform, vec3<f16>, read> = access %u, 1i
    %17:f16 = load_vector_element %16, 0i
    store_vector_element %15, 1i, %17
    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.  *
********************************************************************
