This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/68163] New: GCC on power8 does not issue the stxsspx instruction on power8
- From: "meissner at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 30 Oct 2015 17:24:51 +0000
- Subject: [Bug target/68163] New: GCC on power8 does not issue the stxsspx instruction on power8
- Auto-submitted: auto-generated
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.