https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68163
Bug ID: 68163 Summary: GCC on power8 does not issue the stxsspx instruction on power8 Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: meissner at gcc dot gnu.org Target Milestone: --- Created attachment 36624 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36624&action=edit Sample program to show the problem. If you select -mcpu=power8, and create a program that has more than 32 live single precision values, the compiler will not use the stxsspx instruction to store values in the Altivec registers. Instead it will do a xscvdpspn instruction to convert the internal format to vector form, then a mfvsrd instruction to move the value into a GPR, and finally stw instruction to store the 32-bit word. If you change the type from float to double, generating the stxsdx instruction.