HLSL: fix invalid spir-v vector * scalar for float1

Missing check for float results in always emitting OpIMul even for float types
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index c58013b..3569001 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -4633,7 +4633,9 @@
             assert(builder.isScalar(right));
             needMatchingVectors = false;
             binOp = spv::OpVectorTimesScalar;
-        } else
+        } else if (isFloat)
+            binOp = spv::OpFMul;
+          else
             binOp = spv::OpIMul;
         break;
     case glslang::EOpVectorTimesMatrix:
diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out
index 31febfd..49827dc 100644
--- a/Test/baseResults/hlsl.float1.frag.out
+++ b/Test/baseResults/hlsl.float1.frag.out
@@ -64,10 +64,6 @@
 0:?     'f1' ( global 1-component vector of float)
 0:?     'scalar' ( global float)
 
-error: SPIRV-Tools Validation Errors
-error: Expected int scalar or vector type as Result Type: IMul
-  %20 = OpIMul %float %18 %19
-
 // Module Version 10000
 // Generated by (magic number): 80007
 // Id's are bound by 27
@@ -106,10 +102,10 @@
               12:             Label
               18:    6(float) Load 14(f1)
               19:    6(float) Load 16(scalar)
-              20:    6(float) IMul 18 19
+              20:    6(float) FMul 18 19
               21:    6(float) Load 9(inFloat1)
               22:    6(float) Load 10(inScalar)
-              23:    6(float) IMul 21 22
+              23:    6(float) FMul 21 22
               24:    6(float) FAdd 20 23
                               ReturnValue 24
                               FunctionEnd