1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct _GlobalUniforms { 4 colorRed: vec4<f32>, 5 colorGreen: vec4<f32>, 6}; 7@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 8const kZero: f32 = 0.0; 9fn return_loop_ff(five: f32) -> f32 { 10 { 11 { 12 var i: f32 = kZero; 13 loop { 14 { 15 if i == five { 16 { 17 return i; 18 } 19 } 20 } 21 continuing { 22 i = i + f32(1); 23 break if i >= 10.0; 24 } 25 } 26 } 27 return 0.0; 28 } 29} 30const kTen: f32 = 10.0; 31fn continue_loop_ff(five: f32) -> f32 { 32 { 33 var sum: f32 = 0.0; 34 { 35 var i: f32 = 0.0; 36 loop { 37 { 38 if i < five { 39 { 40 continue; 41 } 42 } 43 sum = sum + i; 44 } 45 continuing { 46 i = i + f32(1); 47 break if i >= kTen; 48 } 49 } 50 } 51 return sum; 52 } 53} 54fn break_loop_ff(five: f32) -> f32 { 55 { 56 var sum: f32 = 0.0; 57 const kOne: f32 = 1.0; 58 { 59 var i: f32 = 0.0; 60 loop { 61 { 62 if i > five { 63 { 64 break; 65 } 66 } 67 sum = sum + i; 68 } 69 continuing { 70 i = i + kOne; 71 break if i >= 10.0; 72 } 73 } 74 } 75 return sum; 76 } 77} 78fn float_loop_f() -> f32 { 79 { 80 var sum: f32 = 0.0; 81 { 82 var i: f32 = 0.123; 83 loop { 84 { 85 sum = sum + i; 86 } 87 continuing { 88 i = i + 0.111; 89 break if i >= 0.6; 90 } 91 } 92 } 93 return sum - 1.725; 94 } 95} 96fn loop_operator_le_b() -> bool { 97 { 98 var result: vec4<f32> = vec4<f32>(9.0); 99 { 100 var i: f32 = 1.0; 101 loop { 102 { 103 result = vec4<f32>(result.yzw, i); 104 } 105 continuing { 106 i = i + f32(1); 107 break if i > 3.0; 108 } 109 } 110 } 111 return all(result == vec4<f32>(9.0, 1.0, 2.0, 3.0)); 112 } 113} 114fn loop_operator_lt_b() -> bool { 115 { 116 var result: vec4<f32> = vec4<f32>(9.0); 117 { 118 var i: f32 = 1.0; 119 loop { 120 { 121 result = vec4<f32>(result.yzw, i); 122 } 123 continuing { 124 i = i + f32(1); 125 break if i >= 4.0; 126 } 127 } 128 } 129 return all(result == vec4<f32>(9.0, 1.0, 2.0, 3.0)); 130 } 131} 132fn loop_operator_ge_b() -> bool { 133 { 134 var result: vec4<f32> = vec4<f32>(9.0); 135 { 136 var i: f32 = 3.0; 137 loop { 138 { 139 result = vec4<f32>(result.yzw, i); 140 } 141 continuing { 142 i = i - f32(1); 143 break if i < 1.0; 144 } 145 } 146 } 147 return all(result == vec4<f32>(9.0, 3.0, 2.0, 1.0)); 148 } 149} 150fn loop_operator_gt_b() -> bool { 151 { 152 var result: vec4<f32> = vec4<f32>(9.0); 153 { 154 var i: f32 = 3.0; 155 loop { 156 { 157 result = vec4<f32>(result.yzw, i); 158 } 159 continuing { 160 i = i - f32(1); 161 break if i <= 0.0; 162 } 163 } 164 } 165 return all(result == vec4<f32>(9.0, 3.0, 2.0, 1.0)); 166 } 167} 168fn loop_operator_ne_b() -> bool { 169 { 170 var result: vec4<f32> = vec4<f32>(9.0); 171 { 172 var i: f32 = 1.0; 173 loop { 174 { 175 result = vec4<f32>(result.yzw, i); 176 } 177 continuing { 178 i = i + f32(1); 179 break if i >= 4.0; 180 } 181 } 182 } 183 return all(result == vec4<f32>(9.0, 1.0, 2.0, 3.0)); 184 } 185} 186fn loop_operator_eq_b() -> bool { 187 { 188 var result: vec4<f32> = vec4<f32>(9.0); 189 { 190 var i: f32 = 1.0; 191 loop { 192 { 193 result = vec4<f32>(result.yzw, i); 194 } 195 continuing { 196 i = i + f32(1); 197 break if i != 1.0; 198 } 199 } 200 } 201 return all(result == vec4<f32>(9.0, 9.0, 9.0, 1.0)); 202 } 203} 204fn _skslMain(pos: vec2<f32>) -> vec4<f32> { 205 { 206 let _skTemp0 = clamp(pos.x, f32(_globalUniforms.colorGreen.y), f32(_globalUniforms.colorGreen.w)); 207 let five: f32 = _skTemp0 * 5.0; 208 var _skTemp1: vec4<f32>; 209 var _skTemp2: bool; 210 var _skTemp3: bool; 211 var _skTemp4: bool; 212 var _skTemp5: bool; 213 var _skTemp6: bool; 214 var _skTemp7: bool; 215 var _skTemp8: bool; 216 var _skTemp9: bool; 217 var _skTemp10: bool; 218 let _skTemp11 = return_loop_ff(five); 219 if _skTemp11 == 5.0 { 220 let _skTemp12 = continue_loop_ff(five); 221 _skTemp10 = (_skTemp12 == 35.0); 222 } else { 223 _skTemp10 = false; 224 } 225 if _skTemp10 { 226 let _skTemp13 = break_loop_ff(five); 227 _skTemp9 = (_skTemp13 == 15.0); 228 } else { 229 _skTemp9 = false; 230 } 231 if _skTemp9 { 232 let _skTemp14 = float_loop_f(); 233 let _skTemp15 = abs(_skTemp14); 234 _skTemp8 = _skTemp15 < 0.025; 235 } else { 236 _skTemp8 = false; 237 } 238 if _skTemp8 { 239 let _skTemp16 = loop_operator_le_b(); 240 _skTemp7 = _skTemp16; 241 } else { 242 _skTemp7 = false; 243 } 244 if _skTemp7 { 245 let _skTemp17 = loop_operator_lt_b(); 246 _skTemp6 = _skTemp17; 247 } else { 248 _skTemp6 = false; 249 } 250 if _skTemp6 { 251 let _skTemp18 = loop_operator_ge_b(); 252 _skTemp5 = _skTemp18; 253 } else { 254 _skTemp5 = false; 255 } 256 if _skTemp5 { 257 let _skTemp19 = loop_operator_gt_b(); 258 _skTemp4 = _skTemp19; 259 } else { 260 _skTemp4 = false; 261 } 262 if _skTemp4 { 263 let _skTemp20 = loop_operator_eq_b(); 264 _skTemp3 = _skTemp20; 265 } else { 266 _skTemp3 = false; 267 } 268 if _skTemp3 { 269 let _skTemp21 = loop_operator_ne_b(); 270 _skTemp2 = _skTemp21; 271 } else { 272 _skTemp2 = false; 273 } 274 if _skTemp2 { 275 _skTemp1 = _globalUniforms.colorGreen; 276 } else { 277 _skTemp1 = _globalUniforms.colorRed; 278 } 279 return _skTemp1; 280 } 281} 282@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> { 283 return _skslMain(_coords); 284} 285