SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
  x_4_1:u32 @offset(0), @location(0), @interpolate(flat)
  gl_Position:vec4<f32> @offset(16), @builtin(position)
}

$B1: {  # root
  %x_3:ptr<private, vec2<f32>, read_write> = var
  %x_4:ptr<private, u32, read_write> = var
  %gl_Position:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    %5:f32 = load_vector_element %x_3, 0u
    %6:f32 = add %5, 1.02777779102325439453f
    %7:f32 = mul %6, 18.0f
    %8:f32 = sub %7, 1.0f
    %9:u32 = call %tint_f32_to_u32, %8
    %11:u32 = let %9
    %12:f32 = load_vector_element %x_3, 1u
    %13:f32 = add %12, 1.02777779102325439453f
    %14:f32 = mul %13, 18.0f
    %15:f32 = sub %14, 1.0f
    %16:u32 = call %tint_f32_to_u32, %15
    %17:u32 = mul %16, 36u
    %18:u32 = add %11, %17
    store %x_4, %18
    %19:f32 = load_vector_element %x_3, 0u
    %20:f32 = load_vector_element %x_3, 1u
    %21:vec4<f32> = construct %19, %20, 0.0f, 1.0f
    store %gl_Position, %21
    ret
  }
}
%tint_symbol = @vertex func(%x_3_param:vec2<f32> [@location(0)]):main_out {
  $B3: {
    store %x_3, %x_3_param
    %24:void = call %main_1
    %25:u32 = load %x_4
    %26:vec4<f32> = load %gl_Position
    %27:main_out = construct %25, %26
    ret %27
  }
}
%tint_f32_to_u32 = func(%value:f32):u32 {
  $B4: {
    %29:u32 = convert %value
    %30:bool = gte %value, 0.0f
    %31:u32 = select 0u, %29, %30
    %32:bool = lte %value, 4294967040.0f
    %33:u32 = select 4294967295u, %31, %32
    ret %33
  }
}

invalid entry point IO struct uses
********************************************************************
*  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.  *
********************************************************************
