SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
}

%atomicMin_69d383 = func():void {
  $B2: {
    %arg_1:ptr<function, u32, read_write> = var, 1u
    %5:u32 = load %arg_1
    %6:u32 = atomicMin %arg_0, %5
    %res:ptr<function, u32, read_write> = var, %6
    %8:u32 = load %res
    store %prevent_dce, %8
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
  $B3: {
    %11:bool = eq %tint_local_index, 0u
    if %11 [t: $B4] {  # if_1
      $B4: {  # true
        %12:void = atomicStore %arg_0, 0u
        exit_if  # if_1
      }
    }
    %13:void = msl.threadgroup_barrier 4u
    %14:void = call %atomicMin_69d383
    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.  *
********************************************************************
