Bug 1018 - byte swaps needed for fprs (fgrevi?) and fpr/gpr transfers
Summary: byte swaps needed for fprs (fgrevi?) and fpr/gpr transfers
Status: RESOLVED WONTFIX
Alias: None
Product: Libre-SOC's first SoC
Classification: Unclassified
Component: Specification (show other bugs)
Version: unspecified
Hardware: Other Linux
: --- enhancement
Assignee: Jacob Lifshay
URL:
Depends on:
Blocks: 1015
  Show dependency treegraph
 
Reported: 2023-03-07 21:56 GMT by Jacob Lifshay
Modified: 2023-03-10 21:58 GMT (History)
2 users (show)

See Also:
NLnet milestone: ---
total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0
parent task for budget allocation:
child tasks for budget allocation:
The table of payments (in EUR) for this task; TOML format:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jacob Lifshay 2023-03-07 21:56:40 GMT
needed for memcpy f32x2 <-> f64x1 and u32x2 <-> f64x1 and similar.

* add fgrevi for fpr -> fpr byte swaps
* maybe replace fmv[f/t]g[s][.] with fgrev[f/t]g[s]i[.] for fpr <-> gpr byte swaps
* don't need grevlut functionality so grevi is sufficient
Comment 1 Jacob Lifshay 2023-03-08 04:13:01 GMT
I accidentally posted the comment to https://bugs.libre-soc.org/show_bug.cgi?id=1015#c3

reproduced here:
(In reply to Jacob Lifshay from bug #1015, comment #2)
> it occurred to me that we may want to submit fpr/gpr converts as a separate
> rfc from fpr/gpr moves/byte-swaps


I added fpr/gpr grev to a copy of int_fp_mv for review. fpr/gpr grev replaces fmvfg/fmvtg, which are now just assembler aliases:
https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/int_fp_mv_replace_fmv_with_fgrev.mdwn;h=4b3a6900deafad6493b7b4a3cf1e4da91b05a994;hb=HEAD

It also occurred to me that there are no fp load/stores with byte swapping, we'll want to add those too, probably as a separate RFC.
Comment 2 Jacob Lifshay 2023-03-10 21:24:53 GMT
closing since now that I think about it more, transmutes between f64 <-> u32x2 and similar aren't that common, as well as this seems like something the ISA WG would reject.
Comment 3 Jacob Lifshay 2023-03-10 21:58:48 GMT
markos seems to like fgrev*:
https://libre-soc.org/irclog/%23libre-soc.2023-03-10.log.html#t2023-03-10T21:48:18