https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117729
Zoltan Hidvegi <zoltan at hidvegi dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |zoltan at hidvegi dot com
--- Comment #1 from Zoltan Hidvegi <zoltan at hidvegi dot com> ---
A similar improvement can be made to save/restore FPR registers, which are the
really the upper part of the the vsr registers. The lower part of these vsrs
are volatile. We can pack 4 fprs into a pair of vsr registers and using the
paired sore/load instructions. E.g. instead of
stfd 14,-144(1)
stfd 15,-136(1)
stfd 16,-128(1)
stfd 17,-120(1)
one can use something like
xxpermdi 14,14,15,0
xxpermdi 15,16,17,0
stxvp 14,-144(1)
This is fewer instructions and spreads the work across more execution units.