SKIP: FAILED

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

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

%atomicSub_051100 = func():void {
  $B2: {
    %arg_1:ptr<function, i32, read_write> = var, 0i
    %res:ptr<function, i32, read_write> = var, 0i
    store %arg_1, 1i
    %5:i32 = load %arg_1
    %x_20:i32 = let %5
    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
    %8:i32 = atomicSub %7, %x_20
    %x_13:i32 = let %8
    store %res, %x_13
    ret
  }
}
%fragment_main_1 = func():void {
  $B3: {
    %11:void = call %atomicSub_051100
    ret
  }
}
%fragment_main = @fragment func():void {
  $B4: {
    %13:void = call %fragment_main_1
    ret
  }
}
%compute_main_1 = func():void {
  $B5: {
    %15:void = call %atomicSub_051100
    ret
  }
}
%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
  $B6: {
    %17:void = call %compute_main_1
    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.  *
********************************************************************
