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