/* [config]
 * expect_result: pass
 * glsl_version: 1.50
 * require_extensions: GL_ARB_gpu_shader_fp64
 * [end config]
 *
 * Check that the following test vectors are constant folded correctly:
 * mix(dvec3(-2.0lf, -2.0lf, -2.0lf), dvec3(-3.0lf, -3.0lf, 3.0lf), bvec3(true, false, true)) => dvec3(-3.0lf, -2.0lf, 3.0lf)
 * mix(dvec3(-2.0lf, 2.0lf, 2.0lf), dvec3(3.0lf, -3.0lf, -3.0lf), bvec3(false, true, false)) => dvec3(-2.0lf, -3.0lf, 2.0lf)
 * mix(dvec3(2.0lf, 2.0lf, -2.0lf), dvec3(3.0lf, 3.0lf, -3.0lf), bvec3(true, false, true)) => dvec3(3.0lf, 2.0lf, -3.0lf)
 */
#version 150
#extension GL_ARB_gpu_shader_fp64 : require

void main()
{
  double[distance(mix(dvec3(-2.0lf, -2.0lf, -2.0lf), dvec3(-3.0lf, -3.0lf, 3.0lf), bvec3(true, false, true)), dvec3(-3.0lf, -2.0lf, 3.0lf)) <= 4.6904157598234305e-05lf ? 1 : -1] array0;
  double[distance(mix(dvec3(-2.0lf, 2.0lf, 2.0lf), dvec3(3.0lf, -3.0lf, -3.0lf), bvec3(false, true, false)), dvec3(-2.0lf, -3.0lf, 2.0lf)) <= 4.123105625617661e-05lf ? 1 : -1] array1;
  double[distance(mix(dvec3(2.0lf, 2.0lf, -2.0lf), dvec3(3.0lf, 3.0lf, -3.0lf), bvec3(true, false, true)), dvec3(3.0lf, 2.0lf, -3.0lf)) <= 4.6904157598234305e-05lf ? 1 : -1] array2;
  gl_Position = vec4(array0.length() + array1.length() + array2.length());
}
