yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
6c292d3b
main
1#version 140 2in vec4 bigColor ; 3in vec4 bigColor1_1 ; 4in vec4 bigColor1_2 ; 5in vec4 bigColor1_3 ; 6in vec4 bigColor2 ; 7in vec4 bigColor3 ; 8in vec4 bigColor4 ; 9in vec4 bigColor5 ; 10in vec4 bigColor6 ; 11in vec4 bigColor7 ; 12in vec4 bigColor8 ; 13 14in vec4 BaseColor ; 15 16in float d ; 17in float d2 ; 18in float d3 ; 19in float d4 ; 20in float d5 ; 21in float d6 ; 22in float d7 ; 23in float d8 ; 24in float d9 ; 25in float d10 ; 26in float d11 ; 27in float d12 ; 28in float d14 ; 29in float d15 ; 30in float d16 ; 31in float d17 ; 32in float d18 ; 33flat in int Count ; 34 35void main () 36{ 37vec4 color = BaseColor ; 38 39// Not a real loop 40while (true) { 41if (color .x < 0.33 ) { 42color += vec4 (0.33 ); 43break ; 44 } 45if (color .x < 0.66 ) { 46color += vec4 (0.66 ); 47break ; 48 } 49 50color += vec4 (0.33 ); 51break ; 52 } 53 54// While 55while (color .x < d ) { 56color += bigColor ; 57 } 58 59// While (latchy) 60while (color .z < d ) { 61color += bigColor1_1 ; 62if (color .w < d ) 63continue ; 64 65color += bigColor1_1 ; 66 } 67 68// While (constant) 69while (color .x < 42.0 ) { 70++ color ; 71 } 72 73// While (complicated-conditional) 74while (color .w < d2 && color .y < d3 ) { 75color += bigColor1_2 ; 76 } 77 78// While (multi-exit) 79while (color .z < d3 ) { 80color += bigColor1_3 ; 81if (color .y < d4 ) 82break ; 83color += bigColor1_3 ; 84 } 85 86// For (dynamic) 87for (int i = 0 ;i < Count ;++ i ) { 88color += bigColor2 ; 89 } 90 91// Do while 92do { 93color += bigColor3 ; 94 }while (color .x < d2 ); 95 96// For (static) 97for (int i = 0 ;i < 42 ;++ i ) { 98color .z += d3 ; 99 } 100 101// For (static) flow-control 102for (int i = 0 ;i < 100 ;++ i ) { 103if (color .z < 20.0 ) 104color .x ++ ; 105else 106color .y ++ ; 107if (color .w < 20.0 ) 108if (color .z > color .y ) 1090 ;// do nothing 110 } 111 112// For (static) flow-control with latch merge 113for (int i = 0 ;i < 120 ;++ i ) { 114if (color .z < 20.0 ) 115color .x ++ ; 116else 117color .y ++ ; 118 } 119 120// For (static) latchy 121for (int i = 0 ;i < 42 ;++ i ) { 122color .z += d3 ; 123if (color .x < d4 ) 124continue ; 125++ color .w ; 126 } 127 128// For (static) multi-exit 129for (int i = 0 ;i < 42 ;++ i ) { 130color .z += d3 ; 131if (color .x < d4 ) 132break ; 133++ color .w ; 134 } 135 136// Latchy 137do { 138color += bigColor4 ; 139if (color .x < d4 ) 140continue ; 141if (color .y < d4 ) 142color .y += d4 ; 143else 144color .x += d4 ; 145 }while (color .z < d4 ); 146 147// Do while flow control 148do { 149color += bigColor5 ; 150if (color .y < d5 ) 151color .y += d5 ; 152 }while (color .x < d5 ); 153 154// If then loop 155if (color .x < d6 ) { 156while (color .y < d6 ) 157color += bigColor6 ; 158 }else { 159while (color .z < d6 ) 160color .z += bigColor6 .z ; 161 } 162 163// If then multi-exit 164if (color .x < d6 ) { 165while (color .y < d6 ) { 166color += bigColor6 ; 167if (d7 < 1.0 ) 168break ; 169 } 170 171 }else { 172while (color .z < d6 ) 173color .z += bigColor6 .z ; 174 } 175 176 177// Multi-exit 178do { 179if (d7 < 0.0 ) 180break ; 181 182color += bigColor7 ; 183 184if (d7 < 1.0 ) { 185color .z ++ ; 186break ; 187 } 188 189color += BaseColor ; 190 191 }while (true); 192 193 194// Multi-exit2 195do { 196// invariant conditional break at the top of the loop. This could be a 197// situation where unswitching the loop has no real increases in code 198// size. 199if (d8 < 0.0 ) 200break ; 201 202color += bigColor7 ; 203 204if (d8 < 1.0 ) { 205color .z ++ ; 206if (d8 < 2.0 ) { 207color .y ++ ; 208 }else { 209color .x ++ ; 210 } 211break ; 212 } 213 214color += BaseColor ; 215 216 }while (color .z < d8 ); 217 218// Deep exit 219while (color .w < d9 ) { 220if (d9 > d8 ) { 221if (color .x <=d7 ) { 222if (color .z == 5.0 ) 223color .w ++ ; 224else 225break ; 226 } 227 } 228 229 } 230 231// No end loop-back. 232while (color .z < d10 ) { 233color .y ++ ; 234if (color .y < d11 ) { 235color .z ++ ; 236if (color .w < d12 ) 237color .w ++ ; 238else 239color .x ++ ; 240continue ; 241 } 242 243color ++ ; 244break ; 245 } 246 247// Multi-continue 248while (color .x < 10.0 ) { 249color += bigColor8 ; 250 251if (color .z < d8 ) 252if (color .w < d6 ) 253continue ; 254 255color .y += bigColor8 .x ; 256 } 257 258color ++ ; 259gl_FragColor = color ; 260 261// Early Return 262while (color .x < d14 ) { 263if (color .y < d15 ) { 264return ; 265 } 266else 267color ++ ; 268 } 269 270color ++ ; 271 272while (color .w < d16 ) { 273color .w ++ ; 274 } 275 276 277// While (complicated-conditional) 278while (color .w < d2 && color .y < d3 ) { 279color += bigColor1_2 ; 280if (color .z < d3 ) 281return ; 282 } 283 284 285do { 286if (color .y < d18 ) 287return ; 288color ++ ; 289 }while (color .x < d17 ); 290 291// Early Discard 292while (color .y < d16 ) { 293if (color .w < d16 ) { 294discard ; 295 }else 296color ++ ; 297 } 298 299color ++ ; 300 301gl_FragColor = color ; 302}