SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: main_out = struct @align(16) {
  x_1_1:f32 @offset(0), @location(4)
  x_1_2:f32 @offset(4), @location(5)
  x_1_3:f32 @offset(8), @location(6)
  x_2_1:vec4<f32> @offset(16), @builtin(position)
}

%b1 = block {  # root
  %x_1:ptr<private, array<f32, 3>, read_write> = var
  %x_2:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void -> %b2 {
  %b2 = block {
    ret
  }
}
%tint_symbol = @vertex func():main_out -> %b3 {
  %b3 = block {
    %5:void = call %main_1
    %6:ptr<private, f32, read_write> = access %x_1, 0i
    %7:f32 = load %6
    %8:ptr<private, f32, read_write> = access %x_1, 1i
    %9:f32 = load %8
    %10:ptr<private, f32, read_write> = access %x_1, 2i
    %11:f32 = load %10
    %12:vec4<f32> = load %x_2
    %13:main_out = construct %7, %9, %11, %12
    ret %13
  }
}

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