SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
  arg_0:atomic<u32> @offset(0)
}

__atomic_compare_exchange_result_u32 = struct @align(4) {
  old_value:u32 @offset(0)
  exchanged:bool @offset(4)
}

%b1 = block {  # root
  %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
}

%atomicCompareExchangeWeak_63d8e6 = func():void -> %b2 {
  %b2 = block {
    %arg_1:ptr<function, u32, read_write> = var, 1u
    %arg_2:ptr<function, u32, read_write> = var, 1u
    %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
    %6:u32 = load %arg_1
    %7:u32 = load %arg_2
    %8:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %5, %6, %7
    %res:ptr<function, __atomic_compare_exchange_result_u32, read_write> = var, %8
    ret
  }
}
%fragment_main = @fragment func():void -> %b3 {
  %b3 = block {
    %11:void = call %atomicCompareExchangeWeak_63d8e6
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
  %b4 = block {
    %13:void = call %atomicCompareExchangeWeak_63d8e6
    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.  *
********************************************************************
