SKIP: FAILED

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

$B1: {  # root
  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    %4:f32 = load_vector_element %gl_FragCoord, 0u
    %5:f32 = mul %4, 0.00390625f
    %6:f32 = let %5
    %7:f32 = load_vector_element %gl_FragCoord, 0u
    %8:i32 = call %tint_f32_to_i32, %7
    %10:i32 = let %8
    %11:f32 = load_vector_element %gl_FragCoord, 1u
    %12:i32 = call %tint_f32_to_i32, %11
    %13:i32 = xor %10, %12
    %14:f32 = convert %13
    %15:f32 = mul %14, 0.00390625f
    %16:f32 = load_vector_element %gl_FragCoord, 1u
    %17:f32 = mul %16, 0.00390625f
    %18:vec4<f32> = construct %6, %15, %17, 1.0f
    store %x_GLF_color, %18
    ret
  }
}
%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
  $B3: {
    store %gl_FragCoord, %gl_FragCoord_param
    %21:void = call %main_1
    %22:vec4<f32> = load %x_GLF_color
    %23:main_out = construct %22
    ret %23
  }
}
%tint_f32_to_i32 = func(%value:f32):i32 {
  $B4: {
    %25:i32 = convert %value
    %26:bool = gte %value, -2147483648.0f
    %27:i32 = select -2147483648i, %25, %26
    %28:bool = lte %value, 2147483520.0f
    %29:i32 = select 2147483647i, %27, %28
    ret %29
  }
}

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.  *
********************************************************************
