1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct _GlobalUniforms { 4 testMatrix2x2: mat2x2<f32>, 5 testMatrix3x3: mat3x3<f32>, 6 testInputs: vec4<f32>, 7 colorRed: vec4<f32>, 8 colorGreen: vec4<f32>, 9 unknownInput: f32, 10}; 11@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 12fn test_mat3_mat3_b() -> bool { 13 { 14 var m: mat3x3<f32>; 15 var mm: mat3x3<f32>; 16 const z: mat3x3<f32> = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 17 m = _globalUniforms.testMatrix3x3; 18 m = _globalUniforms.testMatrix3x3; 19 m = (-1.0 * m); 20 mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 21 mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 22 let _skTemp0 = (-1.0 * _globalUniforms.testMatrix3x3); 23 return (all(m[0] == _skTemp0[0]) && all(m[1] == _skTemp0[1]) && all(m[2] == _skTemp0[2])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2])); 24 } 25} 26fn test_mat4_mat4_b() -> bool { 27 { 28 let testMatrix4x4: mat4x4<f32> = mat4x4<f32>(_globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3]); 29 var m: mat4x4<f32>; 30 var mm: mat4x4<f32>; 31 const z: mat4x4<f32> = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 32 m = testMatrix4x4; 33 m = testMatrix4x4; 34 m = (-1.0 * m); 35 mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 36 mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 37 let _skTemp1 = (-1.0 * testMatrix4x4); 38 return (all(m[0] == _skTemp1[0]) && all(m[1] == _skTemp1[1]) && all(m[2] == _skTemp1[2]) && all(m[3] == _skTemp1[3])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); 39 } 40} 41fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 42 { 43 var _0_m: mat2x2<f32>; 44 var _1_mm: mat2x2<f32>; 45 const _3_z: mat2x2<f32> = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 46 _0_m = _globalUniforms.testMatrix2x2; 47 _0_m = _globalUniforms.testMatrix2x2; 48 _0_m = (-1.0 * _0_m); 49 _1_mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 50 _1_mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 51 var _skTemp2: vec4<f32>; 52 var _skTemp3: bool; 53 var _skTemp4: bool; 54 let _skTemp5 = (-1.0 * _globalUniforms.testMatrix2x2); 55 if (all(_0_m[0] == _skTemp5[0]) && all(_0_m[1] == _skTemp5[1])) && (all(_1_mm[0] == _3_z[0]) && all(_1_mm[1] == _3_z[1])) { 56 let _skTemp6 = test_mat3_mat3_b(); 57 _skTemp4 = _skTemp6; 58 } else { 59 _skTemp4 = false; 60 } 61 if _skTemp4 { 62 let _skTemp7 = test_mat4_mat4_b(); 63 _skTemp3 = _skTemp7; 64 } else { 65 _skTemp3 = false; 66 } 67 if _skTemp3 { 68 _skTemp2 = _globalUniforms.colorGreen; 69 } else { 70 _skTemp2 = _globalUniforms.colorRed; 71 } 72 return _skTemp2; 73 } 74} 75@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> { 76 return _skslMain(_coords); 77} 78