SKIP: FAILED

<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragOutput = struct @align(16) {
  color:vec4<f32> @offset(0), @location(0)
  blend:vec4<f32> @offset(16), @location(0)
}

%frag_main = @fragment func():FragOutput -> %b1 {
  %b1 = block {
    %output:ptr<function, FragOutput, read_write> = var
    %3:ptr<function, vec4<f32>, read_write> = access %output, 0u
    store %3, vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f)
    %4:ptr<function, vec4<f32>, read_write> = access %output, 1u
    store %4, vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f)
    %5:FragOutput = load %output
    ret %5
  }
}

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