[libre-riscv-dev] [Bug 139] Add LD.X and ST.X? Strided

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Wed Oct 9 13:52:49 BST 2019


--- Comment #62 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
ok i have another idea: instead of the immediates being 12 bits, they're
8, *but*, there is *one* separate bit (in funct3?) which indicates
whether the swizzles are indices xyzw or constants {0,1,1/2,pi}.

if destmask is fitted into the top 4 bits, that gives the ability of
swizzlei to reach the upper elements:

    fmv.swizzlei rd.mask{0bw0x0} = rs.zw


    fmv.swizzlei rd.mask{0bwz00} = {pi, 1.0}

it does mean however that four funct3s are needed (where with what
you came up with, jacob, there are three for swizzlei).

however what is gained instead is the ability for swizzlei to set
upper elements (beyond the straight sequence).

that in turn saves having to use an extra register - rs2 - in swizzle.
which would still need to be set up (loaded with an immediate).

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

More information about the libre-riscv-dev mailing list