SKIP: FAILED

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

$B1: {  # root
  %x_3:ptr<private, vec3<u32>, read_write> = var
  %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
  %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
}

%main_1 = func():void {
  $B2: {
    %5:u32 = load_vector_element %x_3, 0u
    %x_21:u32 = let %5
    %7:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
    %8:u32 = load %7
    %x_23:u32 = let %8
    %10:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
    %11:i32 = bitcast %x_23
    %12:i32 = abs %11
    %13:u32 = bitcast %12
    store %10, %13
    ret
  }
}
%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
  $B3: {
    store %x_3, %x_3_param
    %16:void = call %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.  *
********************************************************************
