[Libre-soc-bugs] [Bug 617] add SVP64 predication to TestIssuer

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Thu Mar 18 14:26:46 GMT 2021


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

--- Comment #3 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
so, just so you know, the final pseudo-code will be something like this:

       if not src_zeroing:
            while (((1<<srcstep) & srcmask) == 0) and (srcstep != vl):
                print ("      skip", bin(1<<srcstep))
                srcstep += 1

       if not dest_zeroing:
            # same for dststep
            while (((1<<dststep) & dstmask) == 0) and (dststep != vl):
                print ("      skip", bin(1<<dststep))
                dststep += 1

       if src_zeroing and ((1<<srcstep) & srcmask) == 0:
            RA = 0
            RB = 0
       else:
            RA = get_register_RA
            RB = get_register_RB

       result, Condition_Register = calc_operation(RA, RB)

       if dest_zeroing and ((1<<dststep) & srcmask) == 0):
            result = 0
            Condition_Register = EQzero

       store_result(result)
       if Rc=1: store_cr(Condition_Register)


so the first phase is to add src-step and dst-step "skipping", based
on which bits of the predicate mask(s) are zero

the second phase adds in src_zeroing / dest_zeroing which does NOT
skip the computation but instead feeds **ZEROs** into either the
input or the output

i leave it up to you whether you would prefer to implement the whole
FSM there, i will "catch up" adding zeroing unit tests.

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


More information about the libre-soc-bugs mailing list