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.