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)
  %w:ptr<workgroup, array<mat3x3<f32>, 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, mat3x3<f32>, read_write> = access %w, %idx
        store %7, mat3x3<f32>(vec3<f32>(0.0f))
        continue  # -> $B5
      }
      $B5: {  # continuing
        %8:u32 = add %idx, 1u
        next_iteration %8  # -> $B4
      }
    }
    %9:void = msl.threadgroup_barrier 4u
    %10:array<mat3x3<f32>, 4> = load %u
    store %w, %10
    %11:ptr<workgroup, mat3x3<f32>, read_write> = access %w, 1i
    %12:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
    %13:mat3x3<f32> = load %12
    store %11, %13
    %14:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
    %15:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
    %16:vec3<f32> = load %15
    %17:vec3<f32> = swizzle %16, zxy
    store %14, %17
    %18:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
    %19:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
    %20:f32 = 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.  *
********************************************************************
