1cb93a386Sopenharmony_ciuniform half4 testInputs; // equals (-1.25, 0, 0.75, 2.25) 2cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed; 3cb93a386Sopenharmony_ci 4cb93a386Sopenharmony_cihalf4 main(float2 coords) { 5cb93a386Sopenharmony_ci // NOTE: the ES3 spec does not mandate NaN support. This test may not succeed on some GPUs. 6cb93a386Sopenharmony_ci 7cb93a386Sopenharmony_ci half4 valueIsNaN = 0 / testInputs.yyyy; 8cb93a386Sopenharmony_ci half4 valueIsNumber = 1 / testInputs; 9cb93a386Sopenharmony_ci 10cb93a386Sopenharmony_ci return ( (isnan(valueIsNaN.x)) && 11cb93a386Sopenharmony_ci all(isnan(valueIsNaN.xy)) && 12cb93a386Sopenharmony_ci all(isnan(valueIsNaN.xyz)) && 13cb93a386Sopenharmony_ci all(isnan(valueIsNaN.xyzw)) && 14cb93a386Sopenharmony_ci ! (isnan(valueIsNumber.x)) && 15cb93a386Sopenharmony_ci !any(isnan(valueIsNumber.xy)) && 16cb93a386Sopenharmony_ci !any(isnan(valueIsNumber.xyz)) && 17cb93a386Sopenharmony_ci !any(isnan(valueIsNumber.xyzw))) ? colorGreen : colorRed; 18cb93a386Sopenharmony_ci} 19