1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct FSOut { 4 @location(0) sk_FragColor: vec4<f32>, 5}; 6struct _GlobalUniforms { 7 colorGreen: vec4<f32>, 8 colorRed: vec4<f32>, 9}; 10@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 11fn return_in_one_case_bi(x: i32) -> bool { 12 { 13 var val: i32 = 0; 14 switch x { 15 case 1 { 16 val = val + i32(1); 17 return false; 18 } 19 case default { 20 val = val + i32(1); 21 } 22 } 23 return val == 1; 24 } 25} 26fn return_in_default_bi(x: i32) -> bool { 27 { 28 switch x { 29 case default { 30 return true; 31 } 32 } 33 } 34} 35fn return_in_every_case_bi(x: i32) -> bool { 36 { 37 switch x { 38 case 1 { 39 return false; 40 } 41 case default { 42 return true; 43 } 44 } 45 } 46} 47fn return_in_every_case_no_default_bi(x: i32) -> bool { 48 { 49 var val: i32 = 0; 50 switch x { 51 case 1 { 52 return false; 53 } 54 case 2 { 55 return true; 56 } 57 case default {} 58 } 59 val = val + i32(1); 60 return val == 1; 61 } 62} 63fn case_has_break_before_return_bi(x: i32) -> bool { 64 { 65 var val: i32 = 0; 66 switch x { 67 case 1 { 68 break; 69 } 70 case 2 { 71 return true; 72 } 73 case default { 74 return true; 75 } 76 } 77 val = val + i32(1); 78 return val == 1; 79 } 80} 81fn case_has_break_after_return_bi(x: i32) -> bool { 82 { 83 switch x { 84 case 1 { 85 return false; 86 } 87 case 2 { 88 return true; 89 } 90 case default { 91 return true; 92 } 93 } 94 } 95} 96fn no_return_in_default_bi(x: i32) -> bool { 97 { 98 var val: i32 = 0; 99 switch x { 100 case 1 { 101 return false; 102 } 103 case 2 { 104 return true; 105 } 106 case default { 107 break; 108 } 109 } 110 val = val + i32(1); 111 return val == 1; 112 } 113} 114fn empty_default_bi(x: i32) -> bool { 115 { 116 var val: i32 = 0; 117 switch x { 118 case 1 { 119 return false; 120 } 121 case 2 { 122 return true; 123 } 124 case default { 125 ; 126 } 127 } 128 val = val + i32(1); 129 return val == 1; 130 } 131} 132fn return_with_fallthrough_bi(x: i32) -> bool { 133 { 134 switch x { 135 case 1, 2 { 136 return true; 137 } 138 case default { 139 return false; 140 } 141 } 142 } 143} 144fn fallthrough_ends_in_break_bi(x: i32) -> bool { 145 { 146 var val: i32 = 0; 147 switch x { 148 case 1, 2 { 149 break; 150 } 151 case default { 152 return false; 153 } 154 } 155 val = val + i32(1); 156 return val == 1; 157 } 158} 159fn fallthrough_to_default_with_break_bi(x: i32) -> bool { 160 { 161 var val: i32 = 0; 162 switch x { 163 case 1, 2, default { 164 break; 165 } 166 } 167 val = val + i32(1); 168 return val == 1; 169 } 170} 171fn fallthrough_to_default_with_return_bi(x: i32) -> bool { 172 { 173 switch x { 174 case 1, 2, default { 175 return true; 176 } 177 } 178 } 179} 180fn fallthrough_with_loop_break_bi(x: i32) -> bool { 181 { 182 var val: i32 = 0; 183 switch x { 184 case 1, 2, default { 185 var _skTemp0: bool = false; 186 if x == 1 { 187 { 188 var i: i32 = 0; 189 loop { 190 { 191 val = val + i32(1); 192 break; 193 } 194 continuing { 195 i = i + i32(1); 196 break if i >= 5; 197 } 198 } 199 } 200 _skTemp0 = true; // fallthrough 201 } 202 if _skTemp0 || x == 2 { 203 ; 204 // fallthrough 205 } 206 return true; 207 } 208 } 209 } 210} 211fn fallthrough_with_loop_continue_bi(x: i32) -> bool { 212 { 213 var val: i32 = 0; 214 switch x { 215 case 1, 2, default { 216 var _skTemp1: bool = false; 217 if x == 1 { 218 { 219 var i: i32 = 0; 220 loop { 221 { 222 val = val + i32(1); 223 continue; 224 } 225 continuing { 226 i = i + i32(1); 227 break if i >= 5; 228 } 229 } 230 } 231 _skTemp1 = true; // fallthrough 232 } 233 if _skTemp1 || x == 2 { 234 ; 235 // fallthrough 236 } 237 return true; 238 } 239 } 240 } 241} 242fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 243 { 244 let x: i32 = i32(_globalUniforms.colorGreen.y); 245 var _skTemp2: vec4<f32>; 246 var _skTemp3: bool; 247 var _skTemp4: bool; 248 var _skTemp5: bool; 249 var _skTemp6: bool; 250 var _skTemp7: bool; 251 var _skTemp8: bool; 252 var _skTemp9: bool; 253 var _skTemp10: bool; 254 var _skTemp11: bool; 255 var _skTemp12: bool; 256 var _skTemp13: bool; 257 var _skTemp14: bool; 258 var _skTemp15: bool; 259 let _skTemp16 = return_in_one_case_bi(x); 260 if _skTemp16 { 261 let _skTemp17 = return_in_default_bi(x); 262 _skTemp15 = _skTemp17; 263 } else { 264 _skTemp15 = false; 265 } 266 if _skTemp15 { 267 let _skTemp18 = return_in_every_case_bi(x); 268 _skTemp14 = _skTemp18; 269 } else { 270 _skTemp14 = false; 271 } 272 if _skTemp14 { 273 let _skTemp19 = return_in_every_case_no_default_bi(x); 274 _skTemp13 = _skTemp19; 275 } else { 276 _skTemp13 = false; 277 } 278 if _skTemp13 { 279 let _skTemp20 = case_has_break_before_return_bi(x); 280 _skTemp12 = _skTemp20; 281 } else { 282 _skTemp12 = false; 283 } 284 if _skTemp12 { 285 let _skTemp21 = case_has_break_after_return_bi(x); 286 _skTemp11 = _skTemp21; 287 } else { 288 _skTemp11 = false; 289 } 290 if _skTemp11 { 291 let _skTemp22 = no_return_in_default_bi(x); 292 _skTemp10 = _skTemp22; 293 } else { 294 _skTemp10 = false; 295 } 296 if _skTemp10 { 297 let _skTemp23 = empty_default_bi(x); 298 _skTemp9 = _skTemp23; 299 } else { 300 _skTemp9 = false; 301 } 302 if _skTemp9 { 303 let _skTemp24 = return_with_fallthrough_bi(x); 304 _skTemp8 = _skTemp24; 305 } else { 306 _skTemp8 = false; 307 } 308 if _skTemp8 { 309 let _skTemp25 = fallthrough_ends_in_break_bi(x); 310 _skTemp7 = _skTemp25; 311 } else { 312 _skTemp7 = false; 313 } 314 if _skTemp7 { 315 let _skTemp26 = fallthrough_to_default_with_break_bi(x); 316 _skTemp6 = _skTemp26; 317 } else { 318 _skTemp6 = false; 319 } 320 if _skTemp6 { 321 let _skTemp27 = fallthrough_to_default_with_return_bi(x); 322 _skTemp5 = _skTemp27; 323 } else { 324 _skTemp5 = false; 325 } 326 if _skTemp5 { 327 let _skTemp28 = fallthrough_with_loop_break_bi(x); 328 _skTemp4 = _skTemp28; 329 } else { 330 _skTemp4 = false; 331 } 332 if _skTemp4 { 333 let _skTemp29 = fallthrough_with_loop_continue_bi(x); 334 _skTemp3 = _skTemp29; 335 } else { 336 _skTemp3 = false; 337 } 338 if _skTemp3 { 339 _skTemp2 = _globalUniforms.colorGreen; 340 } else { 341 _skTemp2 = _globalUniforms.colorRed; 342 } 343 return _skTemp2; 344 } 345} 346@fragment fn main() -> FSOut { 347 var _stageOut: FSOut; 348 _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>()); 349 return _stageOut; 350} 351