SKIP: FAILED

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

%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
  $B2: {
    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
      $B3: {  # initializer
        next_iteration %tint_local_index  # -> $B4
      }
      $B4 (%idx:u32): {  # body
        %6:bool = gte %idx, 4u
        if %6 [t: $B6] {  # if_1
          $B6: {  # true
            exit_loop  # loop_1
          }
        }
        %7:ptr<workgroup, mat4x3<f16>, read_write> = access %w, %idx
        store %7, mat4x3<f16>(vec3<f16>(0.0h))
        continue  # -> $B5
      }
      $B5: {  # continuing
        %8:u32 = add %idx, 1u
        next_iteration %8  # -> $B4
      }
    }
    %9:void = msl.threadgroup_barrier 4u
    %10:array<mat4x3<f16>, 4> = load %u
    store %w, %10
    %11:ptr<workgroup, mat4x3<f16>, read_write> = access %w, 1i
    %12:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
    %13:mat4x3<f16> = load %12
    store %11, %13
    %14:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
    %15:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
    %16:vec3<f16> = load %15
    %17:vec3<f16> = swizzle %16, zxy
    store %14, %17
    %18:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
    %19:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
    %20:f16 = load_vector_element %19, 0u
    store_vector_element %18, 0u, %20
    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.  *
********************************************************************
