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) {
  loc2:f32 @offset(0), @location(2)
  loc3:vec4<f32> @offset(16), @location(3)
  loc5:vec3<f16> @offset(32), @location(5)
}

%tint_symbol = @vertex func(%inputs0:VertexInputs0, %loc1:u32 [@location(1)], %instance_index:u32 [@instance_index], %inputs1:VertexInputs1, %loc4:f16 [@location(4)]):vec4<f32> [@position] {
  $B1: {
    %7:u32 = access %inputs0, 0u
    %8:u32 = add %7, %instance_index
    %foo:u32 = let %8
    %10:i32 = access %inputs0, 1u
    %i:i32 = let %10
    %u:u32 = let %loc1
    %13:f32 = access %inputs1, 0u
    %f:f32 = let %13
    %15:vec4<f32> = access %inputs1, 1u
    %v:vec4<f32> = let %15
    %x:f16 = let %loc4
    %18:vec3<f16> = access %inputs1, 2u
    %y:vec3<f16> = let %18
    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.  *
********************************************************************
