https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90824
Bug ID: 90824 Summary: PowerPC should generate better code for SFmode splats for power8 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: meissner at gcc dot gnu.org Target Milestone: --- For power7/power8 code generation, we should generate better code for splatting a SFmode value from memory. Consider the code: vector float foo2 (float *p) { return (vector float) { *p, *p, *p, *p }; } On Power9 we generate the following since we have load word and splat: foo2: lxvwsx 34,0,3 blr However on power8, we generate the following: foo2: lxsspx 34,0,3 xscvdpspn 34,34 xxspltw 34,34,0 blr and on power7, we generate the similar: foo2: lfs 0,0(3) xscvdpsp 0,0 xxspltw 34,0,0 blr For this case, the better code to generate is: foo2: lfiwzx 0,0,3 xxspltw 34,0,0 blr