SKIP: FAILED

#version 310 es

struct buf0 {
  float quarter;
};

struct main_out {
  vec4 x_GLF_color_1;
};
precision highp float;
precision highp int;


uniform buf0 x_6;
vec4 x_GLF_color = vec4(0.0f);
void main_1() {
  vec4 v = vec4(0.0f);
  float x_32 = x_6.quarter;
  v = ceil(vec4(424.113006591796875f, x_32, 1.29999995231628417969f, 19.6200008392333984375f));
  vec4 x_35 = v;
  if (all((x_35 == vec4(425.0f, 1.0f, 2.0f, 20.0f)))) {
    x_GLF_color = vec4(1.0f, 0.0f, 0.0f, 1.0f);
  } else {
    x_GLF_color = vec4(0.0f);
  }
}
main_out main() {
  main_1();
  return main_out(x_GLF_color);
}
error: Error parsing GLSL shader:
ERROR: 0:4: 'float' : type requires declaration of default precision qualifier 
ERROR: 0:4: '' : compilation terminated 
ERROR: 2 compilation errors.  No code generated.




tint executable returned error: exit status 1
