8 layout(location = 0) flat in S1 in1;
9 layout(location = 2) flat in S1 in2;
10 layout(location = 4) flat in int cond;
12 layout(location = 0) out float outv;
19 // glslang will only make OpSelect for very trivial looking expressions
23 outv = cond < 8 ? f1 : f2; // in all versions
25 ivec4 iv1 = ivec4(f1);
26 ivec4 iv2 = ivec4(f2);
27 outv *= (cond > 0 ? iv1 : iv2).z; // in all versions, but in 1.4 as scalar condition, not smeared ala mix()
31 outv *= (cond < 20 ? m1 : m2)[2][1]; // in 1.4, but not before
33 S1 fv = cond > 5 ? in1 : in2; // in 1.4, but not before
36 cond > 0 ? fun1() : fun2(); // not allowed by any version