[Libre-soc-bugs] [Bug 448] MUL pipeline unit tests

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Fri Aug 7 18:00:19 BST 2020


https://bugs.libre-soc.org/show_bug.cgi?id=448

--- Comment #58 from Cole Poirier <colepoirier at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #57)
> (In reply to Cole Poirier from comment #56)
> > Updated and pushed, I think it actually works from examining the test output!
> 
>         test_values = [-32768, -32767, -32766, -2, -1, 0, 1, 2, 32766,
> 32767] 
> 
> so, this is now some fixed values (only), where we want fixed values
> *and* random values appended.
> 
>         for i in range(40):
>             choice = random.choice(test_values)
>             l = [f"mulli 0, 1, {choice}"]
> 
> this is now "multiply immediate-choice randomly selected by register 1
> and put the result in register 0"
> 
> we don't want "a random choice" we want a for-loop of *all* options from
> test_values

Right, that makes more sense. I'm sorry but I wasn't able to figure out the
manner in which you want me to append these random values? Is it simple a line
before the "for val in test_values" loop that goes like this?

```
for i in range(20):
    test_values.append(random.randint(-1 << 15, (1 << 15) - 1))
```

>             initial_regs = [0] * 32
>             initial_regs[1] = random.randint(-1 << 15, (1 << 15) - 1)
> 
> this - a 64-bit register - is limited to the range -32768 to +32767
> we want register 1 to be the full range 0 to 2^64-1

Thank you, I was under the misapprehension that it needed to be in the 2^16-1
range in order to ever hit the edge cases over million of runs, thanks for
helping me clear up this misunderstanding.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list