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