struct VertexOutputs {
  @location(0) @interpolate(flat) loc0 : i32,
  @location(1) @interpolate(flat) loc1 : u32,
  @location(2) loc2 : f32,
  @location(3) loc3 : vec4<f32>,
  @builtin(position) position : vec4<f32>,
};

@stage(vertex)
fn main() -> VertexOutputs {
  return VertexOutputs(1, 1u, 1.0, vec4<f32>(1.0, 2.0, 3.0, 4.0), vec4<f32>());
}
