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 testInputs: vec4<f32>, 10}; 11@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 12const minus: i32 = 2; 13const star: i32 = 3; 14const slash: i32 = 4; 15fn test_bifffff22(op: i32, m11: f32, m12: f32, m21: f32, m22: f32, expected: mat2x2<f32>) -> bool { 16 { 17 let one: f32 = f32(_globalUniforms.colorRed.x); 18 var m2: mat2x2<f32> = mat2x2<f32>(m11 * one, m12 * one, m21 * one, m22 * one); 19 switch op { 20 case 1 { 21 m2 = mat2x2<f32>(1.0 + m2[0], 1.0 + m2[1]); 22 break; 23 } 24 case 2 { 25 m2 = mat2x2<f32>(m2[0] - 1.0, m2[1] - 1.0); 26 break; 27 } 28 case 3 { 29 m2 = m2 * 2.0; 30 break; 31 } 32 case 4 { 33 m2 = m2 * 0.5; 34 break; 35 } 36 case default {} 37 } 38 return (((m2[0].x == expected[0].x) && (m2[0].y == expected[0].y)) && (m2[1].x == expected[1].x)) && (m2[1].y == expected[1].y); 39 } 40} 41fn divisionTest_b() -> bool { 42 { 43 let ten: f32 = f32(_globalUniforms.colorRed.x * 10.0); 44 let _skTemp0 = vec2<f32>(ten); 45 let _skTemp1 = vec2<f32>(ten); 46 var mat: mat2x2<f32> = mat2x2<f32>(_skTemp0[0], _skTemp0[1], _skTemp1[0], _skTemp1[1]); 47 let div: mat2x2<f32> = mat * (1.0 / _globalUniforms.testInputs.x); 48 mat = mat * (1.0 / _globalUniforms.testInputs.x); 49 let _skTemp2 = abs(vec4<f32>(div[0], div[1]) + vec4<f32>(8.0)); 50 let _skTemp3 = all((_skTemp2 < vec4<f32>(0.01))); 51 let _skTemp4 = abs(vec4<f32>(mat[0], mat[1]) + vec4<f32>(8.0)); 52 let _skTemp5 = all((_skTemp4 < vec4<f32>(0.01))); 53 return _skTemp3 && _skTemp5; 54 } 55} 56fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 57 { 58 let f1: f32 = f32(_globalUniforms.colorGreen.y); 59 let f2: f32 = f32(2.0 * _globalUniforms.colorGreen.y); 60 let f3: f32 = f32(3.0 * _globalUniforms.colorGreen.y); 61 let f4: f32 = f32(4.0 * _globalUniforms.colorGreen.y); 62 let _0_expected: mat2x2<f32> = mat2x2<f32>(f1 + 1.0, f2 + 1.0, f3 + 1.0, f4 + 1.0); 63 let _1_one: f32 = f32(_globalUniforms.colorRed.x); 64 var _2_m2: mat2x2<f32> = mat2x2<f32>(f1 * _1_one, f2 * _1_one, f3 * _1_one, f4 * _1_one); 65 { 66 _2_m2 = mat2x2<f32>(1.0 + _2_m2[0], 1.0 + _2_m2[1]); 67 } 68 var _skTemp6: vec4<f32>; 69 var _skTemp7: bool; 70 var _skTemp8: bool; 71 var _skTemp9: bool; 72 var _skTemp10: bool; 73 if (((_2_m2[0].x == _0_expected[0].x) && (_2_m2[0].y == _0_expected[0].y)) && (_2_m2[1].x == _0_expected[1].x)) && (_2_m2[1].y == _0_expected[1].y) { 74 let _skTemp11 = test_bifffff22(minus, f1, f2, f3, f4, mat2x2<f32>(f1 - 1.0, f2 - 1.0, f3 - 1.0, f4 - 1.0)); 75 _skTemp10 = _skTemp11; 76 } else { 77 _skTemp10 = false; 78 } 79 if _skTemp10 { 80 let _skTemp12 = test_bifffff22(star, f1, f2, f3, f4, mat2x2<f32>(f1 * 2.0, f2 * 2.0, f3 * 2.0, f4 * 2.0)); 81 _skTemp9 = _skTemp12; 82 } else { 83 _skTemp9 = false; 84 } 85 if _skTemp9 { 86 let _skTemp13 = test_bifffff22(slash, f1, f2, f3, f4, mat2x2<f32>(f1 * 0.5, f2 * 0.5, f3 * 0.5, f4 * 0.5)); 87 _skTemp8 = _skTemp13; 88 } else { 89 _skTemp8 = false; 90 } 91 if _skTemp8 { 92 let _skTemp14 = divisionTest_b(); 93 _skTemp7 = _skTemp14; 94 } else { 95 _skTemp7 = false; 96 } 97 if _skTemp7 { 98 _skTemp6 = _globalUniforms.colorGreen; 99 } else { 100 _skTemp6 = _globalUniforms.colorRed; 101 } 102 return _skTemp6; 103 } 104} 105@fragment fn main() -> FSOut { 106 var _stageOut: FSOut; 107 _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>()); 108 return _stageOut; 109} 110