https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108338

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jiu Fu Guo <guoji...@gcc.gnu.org>:

https://gcc.gnu.org/g:537d7a445ca0ed677751afd3cdcf8465ccd5fb7e

commit r14-4445-g537d7a445ca0ed677751afd3cdcf8465ccd5fb7e
Author: Jiufu Guo <guoji...@linux.ibm.com>
Date:   Thu Sep 28 17:34:45 2023 +0800

    rs6000: use mtvsrws to move sf from si p9

    As mentioned in PR108338, on p9, we could use mtvsrws to implement
    the bitcast from SI to SF (or lowpart DI to SF).

    For example:
      *(long long*)buff = di;
      float f = *(float*)(buff);

    "sldi 9,3,32 ; mtvsrd 1,9 ; xscvspdpn 1,1" is generated.
    A better one would be "mtvsrws 1,3 ; xscvspdpn 1,1".

            PR target/108338

    gcc/ChangeLog:

            * config/rs6000/rs6000.md (movsf_from_si): Update to generate
mtvsrws
            for P9.

    gcc/testsuite/ChangeLog:

            * gcc.target/powerpc/pr108338.c: Updated to check mtvsrws for p9.

Reply via email to