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)
  %x_8:ptr<storage, S, read_write> = var @binding_point(0, 2)
}

%main_1 = func():void {
  $B2: {
    %6:u32 = load_vector_element %x_3, 0u
    %x_21:u32 = let %6
    %8:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
    %10:u32 = load %9
    %11:i32 = bitcast %10
    %12:i32 = let %11
    %13:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
    %14:u32 = load %13
    %15:i32 = bitcast %14
    %16:i32 = max %12, %15
    %17:u32 = bitcast %16
    store %8, %17
    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
    %20: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.  *
********************************************************************
