123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- #version 140
- in vec4 bigColor;
- in vec4 bigColor1_1;
- in vec4 bigColor1_2;
- in vec4 bigColor1_3;
- in vec4 bigColor2;
- in vec4 bigColor3;
- in vec4 bigColor4;
- in vec4 bigColor5;
- in vec4 bigColor6;
- in vec4 bigColor7;
- in vec4 bigColor8;
- in vec4 BaseColor;
- in float d;
- in float d2;
- in float d3;
- in float d4;
- in float d5;
- in float d6;
- in float d7;
- in float d8;
- in float d9;
- in float d10;
- in float d11;
- in float d12;
- in float d14;
- in float d15;
- in float d16;
- in float d17;
- in float d18;
- flat in int Count;
- void main()
- {
- vec4 color = BaseColor;
- // Not a real loop
- while (true) {
- if (color.x < 0.33) {
- color += vec4(0.33);
- break;
- }
- if (color.x < 0.66) {
- color += vec4(0.66);
- break;
- }
- color += vec4(0.33);
- break;
- }
- // While
- while (color.x < d) {
- color += bigColor;
- }
- // While (latchy)
- while (color.z < d) {
- color += bigColor1_1;
- if (color.w < d)
- continue;
- color += bigColor1_1;
- }
- // While (constant)
- while (color.x < 42.0) {
- ++color;
- }
- // While (complicated-conditional)
- while (color.w < d2 && color.y < d3) {
- color += bigColor1_2;
- }
- // While (multi-exit)
- while (color.z < d3) {
- color += bigColor1_3;
- if (color.y < d4)
- break;
- color += bigColor1_3;
- }
- // For (dynamic)
- for (int i = 0; i < Count; ++i) {
- color += bigColor2;
- }
- // Do while
- do {
- color += bigColor3;
- } while (color.x < d2);
- // For (static)
- for (int i = 0; i < 42; ++i) {
- color.z += d3;
- }
- // For (static) flow-control
- for (int i = 0; i < 100; ++i) {
- if (color.z < 20.0)
- color.x++;
- else
- color.y++;
- if (color.w < 20.0)
- if (color.z > color.y)
- 0; // do nothing
- }
- // For (static) flow-control with latch merge
- for (int i = 0; i < 120; ++i) {
- if (color.z < 20.0)
- color.x++;
- else
- color.y++;
- }
- // For (static) latchy
- for (int i = 0; i < 42; ++i) {
- color.z += d3;
- if (color.x < d4)
- continue;
- ++color.w;
- }
- // For (static) multi-exit
- for (int i = 0; i < 42; ++i) {
- color.z += d3;
- if (color.x < d4)
- break;
- ++color.w;
- }
- // Latchy
- do {
- color += bigColor4;
- if (color.x < d4)
- continue;
- if (color.y < d4)
- color.y += d4;
- else
- color.x += d4;
- } while (color.z < d4);
- // Do while flow control
- do {
- color += bigColor5;
- if (color.y < d5)
- color.y += d5;
- } while (color.x < d5);
- // If then loop
- if (color.x < d6) {
- while (color.y < d6)
- color += bigColor6;
- } else {
- while (color.z < d6)
- color.z += bigColor6.z;
- }
- // If then multi-exit
- if (color.x < d6) {
- while (color.y < d6) {
- color += bigColor6;
- if (d7 < 1.0)
- break;
- }
- } else {
- while (color.z < d6)
- color.z += bigColor6.z;
- }
- // Multi-exit
- do {
- if (d7 < 0.0)
- break;
- color += bigColor7;
- if (d7 < 1.0) {
- color.z++;
- break;
- }
- color += BaseColor;
- } while (true);
- // Multi-exit2
- do {
- // invariant conditional break at the top of the loop. This could be a
- // situation where unswitching the loop has no real increases in code
- // size.
- if (d8 < 0.0)
- break;
- color += bigColor7;
- if (d8 < 1.0) {
- color.z++;
- if (d8 < 2.0) {
- color.y++;
- } else {
- color.x++;
- }
- break;
- }
- color += BaseColor;
- } while (color.z < d8);
- // Deep exit
- while (color.w < d9) {
- if (d9 > d8) {
- if (color.x <= d7) {
- if (color.z == 5.0)
- color.w++;
- else
- break;
- }
- }
- }
- // No end loop-back.
- while (color.z < d10) {
- color.y++;
- if (color.y < d11) {
- color.z++;
- if (color.w < d12)
- color.w++;
- else
- color.x++;
- continue;
- }
- color++;
- break;
- }
- // Multi-continue
- while (color.x < 10.0) {
- color += bigColor8;
- if (color.z < d8)
- if (color.w < d6)
- continue;
- color.y += bigColor8.x;
- }
- color++;
- gl_FragColor = color;
- // Early Return
- while (color.x < d14) {
- if (color.y < d15) {
- return;
- }
- else
- color++;
- }
- color++;
- while (color.w < d16) {
- color.w++;
- }
- // While (complicated-conditional)
- while (color.w < d2 && color.y < d3) {
- color += bigColor1_2;
- if (color.z < d3)
- return;
- }
- do {
- if (color.y < d18)
- return;
- color++;
- } while (color.x < d17);
- // Early Discard
- while (color.y < d16) {
- if (color.w < d16) {
- discard;
- } else
- color++;
- }
- color++;
- gl_FragColor = color;
- }
|