struct VertexInputs0 {
  @builtin(vertex_index)
  vertex_index : u32;
  @location(0)
  loc0 : i32;
}

struct VertexInputs1 {
  @location(2)
  loc2 : f32;
  @location(3)
  loc3 : vec4<f32>;
}

@stage(vertex)
fn main(inputs0 : VertexInputs0, @location(1) loc1 : u32, @builtin(instance_index) instance_index : u32, inputs1 : VertexInputs1) -> @builtin(position) vec4<f32> {
  let foo : u32 = (inputs0.vertex_index + instance_index);
  let i : i32 = inputs0.loc0;
  let u : u32 = loc1;
  let f : f32 = inputs1.loc2;
  let v : vec4<f32> = inputs1.loc3;
  return vec4<f32>();
}
