1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct _GlobalUniforms { 4 unknownInput: f32, 5 colorRed: vec4<f32>, 6 colorGreen: vec4<f32>, 7}; 8@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 9fn test_int_b() -> bool { 10 { 11 let unknown: i32 = i32(_globalUniforms.unknownInput); 12 var ok: bool = true; 13 ok = ok && all((vec4<i32>(0) / vec4<i32>(unknown)) == vec4<i32>(0)); 14 var val: vec4<i32> = vec4<i32>(unknown); 15 val = val + vec4<i32>(1); 16 val = val - vec4<i32>(1); 17 val = val + vec4<i32>(1); 18 val = val - vec4<i32>(1); 19 ok = ok && all(val == vec4<i32>(unknown)); 20 val = val * vec4<i32>(2); 21 val = val / vec4<i32>(2); 22 val = val * vec4<i32>(2); 23 val = val / vec4<i32>(2); 24 ok = ok && all(val == vec4<i32>(unknown)); 25 return ok; 26 } 27} 28fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 29 { 30 let _0_unknown: f32 = _globalUniforms.unknownInput; 31 var _1_ok: bool = true; 32 _1_ok = _1_ok && all((vec4<f32>(0.0) / vec4<f32>(_0_unknown)) == vec4<f32>(0.0)); 33 var _2_val: vec4<f32> = vec4<f32>(_0_unknown); 34 _2_val = _2_val + vec4<f32>(1.0); 35 _2_val = _2_val - vec4<f32>(1.0); 36 _2_val = _2_val + vec4<f32>(1.0); 37 _2_val = _2_val - vec4<f32>(1.0); 38 _1_ok = _1_ok && all(_2_val == vec4<f32>(_0_unknown)); 39 _2_val = _2_val * vec4<f32>(2.0); 40 _2_val = _2_val * vec4<f32>(0.5); 41 _2_val = _2_val * vec4<f32>(2.0); 42 _2_val = _2_val * vec4<f32>(0.5); 43 _1_ok = _1_ok && all(_2_val == vec4<f32>(_0_unknown)); 44 var _skTemp0: vec4<f32>; 45 var _skTemp1: bool; 46 if _1_ok { 47 let _skTemp2 = test_int_b(); 48 _skTemp1 = _skTemp2; 49 } else { 50 _skTemp1 = false; 51 } 52 if _skTemp1 { 53 _skTemp0 = _globalUniforms.colorGreen; 54 } else { 55 _skTemp0 = _globalUniforms.colorRed; 56 } 57 return _skTemp0; 58 } 59} 60@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> { 61 return _skslMain(_coords); 62} 63