Implement float-integer conversions for ESSL 3.00

The implementation uses asint, asuint and asfloat in the HLSL output.

BUG=angle:865

Change-Id: I6b48298e18c7b3b0bdeac522b375ebc4eab7cf4e
Reviewed-on: https://chromium-review.googlesource.com/239520
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/OutputGLSLBase.cpp b/src/compiler/translator/OutputGLSLBase.cpp
index 6b01e49..256f3e4 100644
--- a/src/compiler/translator/OutputGLSLBase.cpp
+++ b/src/compiler/translator/OutputGLSLBase.cpp
@@ -467,6 +467,19 @@
         preString = "fract(";
         break;
 
+      case EOpFloatBitsToInt:
+        preString = "floatBitsToInt(";
+        break;
+      case EOpFloatBitsToUint:
+        preString = "floatBitsToUint(";
+        break;
+      case EOpIntBitsToFloat:
+        preString = "intBitsToFloat(";
+        break;
+      case EOpUintBitsToFloat:
+        preString = "uintBitsToFloat(";
+        break;
+
       case EOpLength:
         preString = "length(";
         break;