SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:1257 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: {  # 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: {
    ret
  }
}
%tint_symbol = @vertex func():main_out {
  $B3: {
    %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.  *
********************************************************************
