SKIP: FAILED

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

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