[Libre-soc-isa] [Bug 213] SimpleV Standard writeup needed

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Wed Nov 18 16:06:13 GMT 2020


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

--- Comment #98 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to cand from comment #97)
> You're right that I missed the option to ignore an element, however adding
> that only makes it 5^4 = 625 options, which fits in 10 bits instead of 12.

* 4 bits for a predicate mask
* 2+2+2+2 bits for indices X, Y, Z, W.

which is 12 bits

or

* 2 bits for SUBVL=1/2/3/4
* 2+2+2+2 bits for indices X, Y, Z, W

which is 10 bits.  actually the SUBVL=2 applies globally to the entire
instruction so it is 2 + (2+2+2+2) * Num_of_src_and_dest_operands


> Wrt your move example, I'm not getting why the move is necessary.
> SUBVL=2 fadd v2.YZXX, v3.XWXX, v4.YWXX
> SUBVL=2 fmv v3.XWXX, v2.YZXX
> 
> Why not directly
> SUBVL=2 fadd v3.XWXX, v3.XWXX, v4.YWXX
> ?

how many bits required to specify the full set of combinations of swizzle
positions on src1?

how many bits required to specify the full set of combinations of swizzle
positions on src2?

how many bits required to specify the full set of combinations of swizzle
positions on dest?

what is the total of those three?

can any optimisations be made on that? (the answer to that question is no
because they are fully independent indices on all src and all dest)

how much space can we spare in an encoding without it going completely insane?
answer: 16 bits.

work backward from the answer "16 bits is what can be spared".

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


More information about the Libre-SOC-ISA mailing list