Add support for OpFMul

Fixes many tests in dEQP-VK.glsl.*

Bug: b/126873455
Change-Id: If949066bbe1d333755d1d83ab175bc39dcc91d91
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26608
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 1926823..037085f 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -288,6 +288,7 @@
 			case spv::OpUDiv:
 			case spv::OpFAdd:
 			case spv::OpFSub:
+			case spv::OpFMul:
 			case spv::OpFDiv:
 			case spv::OpFOrdEqual:
 			case spv::OpFUnordEqual:
@@ -1057,6 +1058,7 @@
 			case spv::OpUDiv:
 			case spv::OpFAdd:
 			case spv::OpFSub:
+			case spv::OpFMul:
 			case spv::OpFDiv:
 			case spv::OpFOrdEqual:
 			case spv::OpFUnordEqual:
@@ -1551,6 +1553,9 @@
 			case spv::OpFSub:
 				dst.emplace(i, lhs - rhs);
 				break;
+			case spv::OpFMul:
+				dst.emplace(i, lhs * rhs);
+				break;
 			case spv::OpFDiv:
 				dst.emplace(i, lhs / rhs);
 				break;