SKIP: FAILED

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

$B1: {  # root
  %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
}

%atomicLoad_fe6cc3 = func():void {
  $B2: {
    %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
    %5:u32 = atomicLoad %4
    %res:ptr<function, u32, read_write> = var, %5
    %7:u32 = load %res
    store %prevent_dce, %7
    ret
  }
}
%fragment_main = @fragment func():void {
  $B3: {
    %9:void = call %atomicLoad_fe6cc3
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B4: {
    %11:void = call %atomicLoad_fe6cc3
    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.  *
********************************************************************
