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