Testing support for MUL with shift as input

Always create the shift as a tensor for all types in testing.
In the reference model, set the shift operand to be available for
all types, but only read in the shift tensor for i32.

Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com>
Signed-off-by: TatWai Chong <tatwai.chong@arm.com>
Change-Id: Ia267cbf8b63ca0a9c97b38e8fb4db83eeb8c0538
diff --git a/verif/generator/tosa_test_gen.py b/verif/generator/tosa_test_gen.py
index ee45f0e..b472087 100644
--- a/verif/generator/tosa_test_gen.py
+++ b/verif/generator/tosa_test_gen.py
@@ -587,9 +587,9 @@
     def build_mul(
         self, op, inputs, args_dict, validator_fcns=None, error_name=None, qinfo=None
     ):
-        assert len(inputs) == 2
-        a, b = inputs
-        shift = args_dict["shift"]
+        # Note that mul is binary operator but it has a shift value tensor
+        assert len(inputs) == 3
+        a, b, s = inputs
 
         result_tensor = OutputShaper.binaryBroadcastOp(
             self.ser, self.rng, a, b, error_name
@@ -605,7 +605,7 @@
             result_tensor.setDtype(outputDType)
 
         # Invalidate Input/Output list for error if checks.
-        input_list = [a.name, b.name]
+        input_list = [a.name, b.name, s.name]
         output_list = [result_tensor.name]
         pCount, cCount = op["operands"]
         num_operands = pCount + cCount
@@ -629,10 +629,7 @@
         ):
             return None
 
-        attr = ts.TosaSerializerAttribute()
-        attr.MulAttribute(shift)
-
-        self.ser.addOperator(op["op"], input_list, output_list, attr)
+        self.ser.addOperator(op["op"], input_list, output_list)
 
         compliance = self.tensorComplianceMetaData(
             op, a.dtype, args_dict, result_tensor, error_name
@@ -3874,10 +3871,10 @@
         },
         "mul": {
             "op": Op.MUL,
-            "operands": (2, 0),
+            "operands": (3, 0),
             "build_fcn": (
                 build_mul,
-                TosaTensorGen.tgBroadcastFuzz,
+                TosaTensorGen.tgMul,
                 TosaTensorValuesGen.tvgMul,
                 TosaArgGen.agMul,
             ),