struct S {
  field0 : vec4<f32>;
};

struct S_1 {
  field0 : vec4<f32>;
};

var<private> x_3 : vec4<f32>;

@group(0) @binding(0) var<uniform> x_5 : S;

fn main_1() {
  let x_20 : vec4<f32> = x_5.field0;
  var x_21_1 : S_1 = S_1(vec4<f32>(0.0, 0.0, 0.0, 0.0));
  x_21_1.field0 = x_20;
  let x_21 : S_1 = x_21_1;
  x_3 = x_21.field0;
  return;
}

struct main_out {
  @location(0)
  x_3_1 : vec4<f32>;
};

@stage(fragment)
fn main() -> main_out {
  main_1();
  return main_out(x_3);
}
