Update mulli to try to use immediates not registers
authorCole Poirier <colepoirier@gmail.com>
Fri, 7 Aug 2020 00:19:49 +0000 (17:19 -0700)
committerCole Poirier <colepoirier@gmail.com>
Fri, 7 Aug 2020 00:19:49 +0000 (17:19 -0700)
src/soc/fu/mul/test/test_pipe_caller.py

index 3033e2a5f596ef5231b2a55ba1e77a6a582be887..82974d383a89a2c62794af6a3085e453ba7024ce 100644 (file)
@@ -287,22 +287,17 @@ class MulTestCase(TestAccumulatorBase):
 
     def case_mulli(self):
 
-        test_values = [-32768, -32767, -32766, -2, -1, 0, 1, 2, 32766, 32767,
-                       random.randint(-1 << 15, (1 << 15)-1), random.randint(
-                       -1 << 15, (1 << 15) - 1), random.randint(-1 << 15,
-                       (1 << 15)-1), random.randint(-1 << 15, (1 << 15)-1),
-                       random.randint(-1 << 15, (1 << 15)-1)
-                      ]
-
-        l = ["mulli 3, 1, 2"]
-        for ra in test_values:
-            for rb in test_values:
-                initial_regs = [0] * 32
-                initial_regs[1] = ra
-                initial_regs[2] = rb
-                # use "with" so as to close the files used
-                with Program(l, bigendian) as prog:
-                    self.add_case(prog, initial_regs)
+        test_values = [-32768, -32767, -32766, -2, -1, 0, 1, 2, 32766, 32767]
+
+        for i in range(40):
+            choice = random.choice(test_values)
+            l = [f"mulli 1, 0, {choice}"]
+            initial_regs = [0] * 32
+            initial_regs[1] = random.randint(-1 << 15, (1 << 15) - 1)
+            initial_regs[2] = random.randint(-1 << 15, (1 << 15) - 1)
+            # use "with" so as to close the files used
+            with Program(l, bigendian) as prog:
+                self.add_case(prog, initial_regs)
 
 # TODO add test case for these 3 operand cases (madd
 # needs to be implemented)