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 switch_with_continue_in_while_loop_bi(x: i32) -> bool { 12 { 13 var val: i32 = 0; 14 var i: i32 = 0; 15 switch x { 16 case 1, default { 17 var _skTemp0: bool = false; 18 if x == 1 { 19 loop { 20 if i < 10 { 21 { 22 i = i + i32(1); 23 val = val + i32(1); 24 continue; 25 } 26 } else { 27 break; 28 } 29 } 30 // fallthrough 31 } 32 val = val + i32(1); 33 } 34 } 35 return val == 11; 36 } 37} 38fn while_loop_with_break_in_switch_bi(x: i32) -> bool { 39 { 40 var val: i32 = 0; 41 var i: i32 = 0; 42 loop { 43 if i < 10 { 44 { 45 i = i + i32(1); 46 switch x { 47 case 1 { 48 val = val + i32(1); 49 break; 50 } 51 case default { 52 return false; 53 } 54 } 55 val = val + i32(1); 56 } 57 } else { 58 break; 59 } 60 } 61 return val == 20; 62 } 63} 64fn switch_with_break_in_do_while_loop_bi(x: i32) -> bool { 65 { 66 var val: i32 = 0; 67 var i: i32 = 0; 68 switch x { 69 case 1, default { 70 var _skTemp1: bool = false; 71 if x == 1 { 72 loop { 73 { 74 i = i + i32(1); 75 val = val + i32(1); 76 break; 77 } 78 continuing { 79 break if i >= 10; 80 } 81 } 82 // fallthrough 83 } 84 val = val + i32(1); 85 } 86 } 87 return val == 2; 88 } 89} 90fn switch_with_continue_in_do_while_loop_bi(x: i32) -> bool { 91 { 92 var val: i32 = 0; 93 var i: i32 = 0; 94 switch x { 95 case 1, default { 96 var _skTemp2: bool = false; 97 if x == 1 { 98 loop { 99 { 100 i = i + i32(1); 101 val = val + i32(1); 102 continue; 103 } 104 continuing { 105 break if i >= 10; 106 } 107 } 108 // fallthrough 109 } 110 val = val + i32(1); 111 } 112 } 113 return val == 11; 114 } 115} 116fn do_while_loop_with_break_in_switch_bi(x: i32) -> bool { 117 { 118 var val: i32 = 0; 119 var i: i32 = 0; 120 loop { 121 { 122 i = i + i32(1); 123 switch x { 124 case 1 { 125 val = val + i32(1); 126 break; 127 } 128 case default { 129 return false; 130 } 131 } 132 val = val + i32(1); 133 } 134 continuing { 135 break if i >= 10; 136 } 137 } 138 return val == 20; 139 } 140} 141fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 142 { 143 let x: i32 = i32(_globalUniforms.colorGreen.y); 144 var _0_val: i32 = 0; 145 var _1_i: i32 = 0; 146 switch x { 147 case 1, default { 148 var _skTemp3: bool = false; 149 if x == 1 { 150 loop { 151 if _1_i < 10 { 152 { 153 _1_i = _1_i + i32(1); 154 _0_val = _0_val + i32(1); 155 break; 156 } 157 } else { 158 break; 159 } 160 } 161 // fallthrough 162 } 163 _0_val = _0_val + i32(1); 164 } 165 } 166 var _skTemp4: vec4<f32>; 167 var _skTemp5: bool; 168 var _skTemp6: bool; 169 var _skTemp7: bool; 170 var _skTemp8: bool; 171 var _skTemp9: bool; 172 if _0_val == 2 { 173 let _skTemp10 = switch_with_continue_in_while_loop_bi(x); 174 _skTemp9 = _skTemp10; 175 } else { 176 _skTemp9 = false; 177 } 178 if _skTemp9 { 179 let _skTemp11 = while_loop_with_break_in_switch_bi(x); 180 _skTemp8 = _skTemp11; 181 } else { 182 _skTemp8 = false; 183 } 184 if _skTemp8 { 185 let _skTemp12 = switch_with_break_in_do_while_loop_bi(x); 186 _skTemp7 = _skTemp12; 187 } else { 188 _skTemp7 = false; 189 } 190 if _skTemp7 { 191 let _skTemp13 = switch_with_continue_in_do_while_loop_bi(x); 192 _skTemp6 = _skTemp13; 193 } else { 194 _skTemp6 = false; 195 } 196 if _skTemp6 { 197 let _skTemp14 = do_while_loop_with_break_in_switch_bi(x); 198 _skTemp5 = _skTemp14; 199 } else { 200 _skTemp5 = false; 201 } 202 if _skTemp5 { 203 _skTemp4 = _globalUniforms.colorGreen; 204 } else { 205 _skTemp4 = _globalUniforms.colorRed; 206 } 207 return _skTemp4; 208 } 209} 210@fragment fn main() -> FSOut { 211 var _stageOut: FSOut; 212 _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>()); 213 return _stageOut; 214} 215