SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexInputs0 = struct @align(4) {
  vertex_index:u32 @offset(0), @builtin(vertex_index)
  loc0:i32 @offset(4), @location(0)
}

VertexInputs1 = struct @align(16) {
  loc1:u32 @offset(0), @location(2)
  loc3:vec4<f32> @offset(16), @location(3)
}

%tint_symbol = @vertex func(%inputs0:VertexInputs0, %loc1:u32 [@location(1)], %instance_index:u32 [@instance_index], %inputs1:VertexInputs1):vec4<f32> [@position] {
  $B1: {
    %6:u32 = access %inputs0, 0u
    %7:u32 = add %6, %instance_index
    %foo:u32 = let %7
    ret vec4<f32>(0.0f)
  }
}

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