]>
git.ipfire.org Git - thirdparty/gcc.git/commit
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.