struct FragmentInputs0 {
  @builtin(position)
  position : vec4<f32>;
  @location(0) @interpolate(flat)
  loc0 : i32;
}

struct FragmentInputs1 {
  @location(3)
  loc3 : vec4<f32>;
  @builtin(sample_mask)
  sample_mask : u32;
}

@stage(fragment)
fn main(inputs0 : FragmentInputs0, @builtin(front_facing) front_facing : bool, @location(1) @interpolate(flat) loc1 : u32, @builtin(sample_index) sample_index : u32, inputs1 : FragmentInputs1, @location(2) loc2 : f32) {
  if (front_facing) {
    let foo : vec4<f32> = inputs0.position;
    let bar : u32 = (sample_index + inputs1.sample_mask);
    let i : i32 = inputs0.loc0;
    let u : u32 = loc1;
    let f : f32 = loc2;
    let v : vec4<f32> = inputs1.loc3;
  }
}
