diagnostic(off, derivative_uniformity); diagnostic(off, chromium.unreachable_code); enable f16; struct FSOut { @location(0) sk_FragColor: vec4, }; struct _GlobalUniforms { colorGreen: vec4, colorRed: vec4, testArray: array<_skArrayElement_f, 5>, testArrayNegative: array<_skArrayElement_f, 5>, }; @group(0) @binding(0) var _globalUniforms : _GlobalUniforms; struct S { x: i32, y: i32, }; fn _skslMain(coords: vec2) -> vec4 { { const f1: array = array(1.0, 2.0, 3.0, 4.0, 5.0); const f2: array = array(1.0, 2.0, 3.0, 4.0, 5.0); const f3: array = array(1.0, 2.0, 3.0, -4.0, 5.0); const v1: array, 2> = array, 2>(vec3(1, 2, 3), vec3(4, 5, 6)); const v2: array, 2> = array, 2>(vec3(1, 2, 3), vec3(4, 5, 6)); const v3: array, 2> = array, 2>(vec3(1, 2, 3), vec3(4, 5, -6)); const m1: array, 3> = array, 3>(mat2x2(1.0h, 0.0, 0.0, 1.0h), mat2x2(2.0h, 0.0, 0.0, 2.0h), mat2x2(3.0h, 4.0h, 5.0h, 6.0h)); const m2: array, 3> = array, 3>(mat2x2(1.0h, 0.0, 0.0, 1.0h), mat2x2(2.0h, 0.0, 0.0, 2.0h), mat2x2(3.0h, 4.0h, 5.0h, 6.0h)); const m3: array, 3> = array, 3>(mat2x2(1.0h, 0.0, 0.0, 1.0h), mat2x2(2.0h, 3.0h, 4.0h, 5.0h), mat2x2(6.0h, 0.0, 0.0, 6.0h)); const s1: array = array(S(1, 2), S(3, 4), S(5, 6)); const s2: array = array(S(1, 2), S(0, 0), S(5, 6)); const s3: array = array(S(1, 2), S(3, 4), S(5, 6)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((f1[0] == f2[0]) && (f1[1] == f2[1]) && (f1[2] == f2[2]) && (f1[3] == f2[3]) && (f1[4] == f2[4])) && ((f1[0] != f3[0]) || (f1[1] != f3[1]) || (f1[2] != f3[2]) || (f1[3] != f3[3]) || (f1[4] != f3[4]))) && ((_skUnpacked__globalUniforms_testArray[0] != _skUnpacked__globalUniforms_testArrayNegative[0]) || (_skUnpacked__globalUniforms_testArray[1] != _skUnpacked__globalUniforms_testArrayNegative[1]) || (_skUnpacked__globalUniforms_testArray[2] != _skUnpacked__globalUniforms_testArrayNegative[2]) || (_skUnpacked__globalUniforms_testArray[3] != _skUnpacked__globalUniforms_testArrayNegative[3]) || (_skUnpacked__globalUniforms_testArray[4] != _skUnpacked__globalUniforms_testArrayNegative[4]))) && ((_skUnpacked__globalUniforms_testArray[0] == f1[0]) && (_skUnpacked__globalUniforms_testArray[1] == f1[1]) && (_skUnpacked__globalUniforms_testArray[2] == f1[2]) && (_skUnpacked__globalUniforms_testArray[3] == f1[3]) && (_skUnpacked__globalUniforms_testArray[4] == f1[4]))) && ((_skUnpacked__globalUniforms_testArray[0] != f3[0]) || (_skUnpacked__globalUniforms_testArray[1] != f3[1]) || (_skUnpacked__globalUniforms_testArray[2] != f3[2]) || (_skUnpacked__globalUniforms_testArray[3] != f3[3]) || (_skUnpacked__globalUniforms_testArray[4] != f3[4]))) && ((f1[0] == _skUnpacked__globalUniforms_testArray[0]) && (f1[1] == _skUnpacked__globalUniforms_testArray[1]) && (f1[2] == _skUnpacked__globalUniforms_testArray[2]) && (f1[3] == _skUnpacked__globalUniforms_testArray[3]) && (f1[4] == _skUnpacked__globalUniforms_testArray[4]))) && ((f3[0] != _skUnpacked__globalUniforms_testArray[0]) || (f3[1] != _skUnpacked__globalUniforms_testArray[1]) || (f3[2] != _skUnpacked__globalUniforms_testArray[2]) || (f3[3] != _skUnpacked__globalUniforms_testArray[3]) || (f3[4] != _skUnpacked__globalUniforms_testArray[4]))) && (all(v1[0] == v2[0]) && all(v1[1] == v2[1]))) && (any(v1[0] != v3[0]) || any(v1[1] != v3[1]))) && ((all(m1[0][0] == m2[0][0]) && all(m1[0][1] == m2[0][1])) && (all(m1[1][0] == m2[1][0]) && all(m1[1][1] == m2[1][1])) && (all(m1[2][0] == m2[2][0]) && all(m1[2][1] == m2[2][1])))) && ((any(m1[0][0] != m3[0][0]) || any(m1[0][1] != m3[0][1])) || (any(m1[1][0] != m3[1][0]) || any(m1[1][1] != m3[1][1])) || (any(m1[2][0] != m3[2][0]) || any(m1[2][1] != m3[2][1])))) && (((s1[0].x != s2[0].x) || (s1[0].y != s2[0].y)) || ((s1[1].x != s2[1].x) || (s1[1].y != s2[1].y)) || ((s1[2].x != s2[2].x) || (s1[2].y != s2[2].y)))) && (((s3[0].x == s1[0].x) && (s3[0].y == s1[0].y)) && ((s3[1].x == s1[1].x) && (s3[1].y == s1[1].y)) && ((s3[2].x == s1[2].x) && (s3[2].y == s1[2].y))))); } } @fragment fn main() -> FSOut { _skInitializePolyfilledUniforms(); var _stageOut: FSOut; _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2()); return _stageOut; } struct _skArrayElement_f { @align(16) e : f32 }; var _skUnpacked__globalUniforms_testArray: array; var _skUnpacked__globalUniforms_testArrayNegative: array; fn _skInitializePolyfilledUniforms() { _skUnpacked__globalUniforms_testArray = array(_globalUniforms.testArray[0].e, _globalUniforms.testArray[1].e, _globalUniforms.testArray[2].e, _globalUniforms.testArray[3].e, _globalUniforms.testArray[4].e); _skUnpacked__globalUniforms_testArrayNegative = array(_globalUniforms.testArrayNegative[0].e, _globalUniforms.testArrayNegative[1].e, _globalUniforms.testArrayNegative[2].e, _globalUniforms.testArrayNegative[3].e, _globalUniforms.testArrayNegative[4].e); }