add all AV opcodes (minmax, avgadd, avgsum) to simulator, CSV files, PowerDecoder, svp64.py
add avgadd DRAFT instruction https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=fe396116d1dbb039642f584879bb5d242c34befa
abs-diff instruction absdu https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=5a0f17c2f11813684b94a71b4478b4fbb6227108 https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=6bfc14319fe1893459c2144acf06e19e53c891ce
add absaddu and absadds https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=a3a2fb98d846f20ad14038da4c4ed00e4cc23bea https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=350d8301b269fc8b98b491692d2b08545f45781b https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=be15ad8ad915ece1a7961c74c7f565b4989f2b5c
I fixed minu[.] to actually be unsigned: https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=2f9891616d1a251bbb83b1ab29da7040258847ab i noticed absdu does signed comparison instead of unsigned, either that needs to be changed to unsigned (and probably renamed to absdiffu) or the name changed to absdiff (not absd since imho that would be interpreted as absolute value dword, not absolute difference). i'm not sure which one you wanted, so i'll let you change it. imho we probably want both of them as separate instructions. also, imho the absadd* instructions should be renamed to addabsdiff* since they add the absolute differences, not take the absolute value of addition.
(In reply to Jacob Lifshay from comment #4) > I fixed minu[.] to actually be unsigned: > https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff; > h=2f9891616d1a251bbb83b1ab29da7040258847ab doh. > i noticed absdu does signed comparison instead of unsigned, yes, that comes from VSX, although i must re-read the page, despite there being a ">u" operator people do insist on using the wrong one then saying "but read the english words", sigh. > either that > needs to be changed to unsigned (and probably renamed to absdiffu) or the > name changed to absdiff (not absd since imho that would be interpreted as > absolute value dword, not absolute difference). need to keep mnemonics short. > > i'm not sure which one you wanted, so i'll let you change it. imho we > probably want both of them as separate instructions. like it. absds. have to find space. grev* needs to go, replace with grevlut. really running out. > also, imho the absadd* instructions should be renamed to addabsdiff* since > they add the absolute differences, not take the absolute value of addition. too long a mnemonic. abssadd absuadd. hmm
(In reply to Luke Kenneth Casson Leighton from comment #5) > (In reply to Jacob Lifshay from comment #4) > > I fixed minu[.] to actually be unsigned: > > https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff; > > h=2f9891616d1a251bbb83b1ab29da7040258847ab > > doh. > > > i noticed absdu does signed comparison instead of unsigned, > > yes, that comes from VSX, although i must re-read the page, > despite there being a ">u" operator people do insist on using > the wrong one then saying "but read the english words", sigh. > > > either that > > needs to be changed to unsigned (and probably renamed to absdiffu) or the > > name changed to absdiff (not absd since imho that would be interpreted as > > absolute value dword, not absolute difference). > > need to keep mnemonics short. not confusing is more important than shortness...how about absdd -- abs diff dword -- specifically to avoid confusion with abs dword. or maybe asub -- abs(sub(ra, rb)) (with sub not overflowing). > > > > > i'm not sure which one you wanted, so i'll let you change it. imho we > > probably want both of them as separate instructions. > > like it. absds. have to find space. grev* needs to go, replace with grevlut. > really running out. > > > also, imho the absadd* instructions should be renamed to addabsdiff* since > > they add the absolute differences, not take the absolute value of addition. > > too long a mnemonic. abssadd absuadd. hmm addasub[u][.] :) -- add(rt, abs(sub(ra, rb)))
(In reply to Jacob Lifshay from comment #6) > not confusing is more important than shortness...how about absdd -- abs diff > dword -- specifically to avoid confusion with abs dword. or maybe asub -- > abs(sub(ra, rb)) (with sub not overflowing). yep. asub. short. nice. > addasub[u][.] :) -- add(rt, abs(sub(ra, rb))) # DRAFT Absolute Accumulate Unsigned Difference absdac[us] "abs" "d"ifference "ac"cumulate "u"nsigned.