1cb93a386Sopenharmony_ciuniform half2x2 testMatrix2x2; // equals (1, 2, 3, 4) 2cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed; 3cb93a386Sopenharmony_ci 4cb93a386Sopenharmony_cihalf4 main(float2 coords) { 5cb93a386Sopenharmony_ci half4 infiniteValue = half4(testMatrix2x2) / colorGreen.r; 6cb93a386Sopenharmony_ci half4 finiteValue = half4(testMatrix2x2) / colorGreen.g; 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci return ( (isinf(infiniteValue.x)) && 9cb93a386Sopenharmony_ci all(isinf(infiniteValue.xy)) && 10cb93a386Sopenharmony_ci all(isinf(infiniteValue.xyz)) && 11cb93a386Sopenharmony_ci all(isinf(infiniteValue.xyzw)) && 12cb93a386Sopenharmony_ci ! (isinf(finiteValue .x)) && 13cb93a386Sopenharmony_ci !any(isinf(finiteValue .xy)) && 14cb93a386Sopenharmony_ci !any(isinf(finiteValue .xyz)) && 15cb93a386Sopenharmony_ci !any(isinf(finiteValue .xyzw))) ? colorGreen : colorRed; 16cb93a386Sopenharmony_ci} 17