Implement isnan/isinf

This change adds ANGLE support for isnan/isinf.

BUG=angle:922
TEST=dEQP tests:
dEQP-GLES3.functional.shaders.builtin_functions.common.isnan.*
(high precision tests still fail)
Tests passing 100% because of this change:
dEQP-GLES3.functional.shaders.builtin_functions.common.isinf.*
Reduced number of errors in tests:
EQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.isnan.*
dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.isinf_*

Change-Id: I52bf18b59365ea7031746ae840550162d7e6b96e
Reviewed-on: https://chromium-review.googlesource.com/250761
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Nicolas Capens <capn@chromium.org>
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index 045ea4c..1615762 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -1655,6 +1655,8 @@
       case EOpFloor:            outputTriplet(visit, "floor(", "", ")");     break;
       case EOpCeil:             outputTriplet(visit, "ceil(", "", ")");      break;
       case EOpFract:            outputTriplet(visit, "frac(", "", ")");      break;
+      case EOpIsNan:            outputTriplet(visit, "isnan(", "", ")");     break;
+      case EOpIsInf:            outputTriplet(visit, "isinf(", "", ")");     break;
       case EOpFloatBitsToInt:   outputTriplet(visit, "asint(", "", ")");     break;
       case EOpFloatBitsToUint:  outputTriplet(visit, "asuint(", "", ")");    break;
       case EOpIntBitsToFloat:   outputTriplet(visit, "asfloat(", "", ")");   break;