| #version 400 | |
| flat in ivec4 uiv4; | |
| in vec4 uv4; | |
| bool ub; | |
| bool uba; | |
| bvec4 ub41, ub42; | |
| in float uf; | |
| flat in int ui; | |
| out float of1; | |
| out vec4 of4; | |
| bool foo() { ++of1; return of1 > 10.0; } | |
| void main() | |
| { | |
| of1 = 0.0; | |
| of4 = vec4(0.0); | |
| if (ub || ui > 2) // not worth short circuiting | |
| ++of1; | |
| if (ub && !uba) // not worth short circuiting | |
| ++of1; | |
| if (ub || foo()) // must short circuit | |
| ++of1; | |
| if (ub && foo()) // must short circuit | |
| ++of1; | |
| if (foo() || ub) // not worth short circuiting | |
| ++of1; | |
| if (foo() && ub) // not worth short circuiting | |
| ++of1; | |
| if (ub || ++of1 > 1.0) // must short circuit | |
| ++of4; | |
| if (++of1 > 1.0 || ub) // not worth short circuiting | |
| ++of4; | |
| if (ub || sin(uf) * 4.0 > of1) // worth short circuiting | |
| ++of1; | |
| if (ub && sin(uf) * 4.0 > of1) // worth short circuiting | |
| ++of1; | |
| } |