http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55923
Bug #: 55923 Summary: tree passes pessimize complex load/store operations Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: amyl...@gcc.gnu.org Target: epiphany-elf Created attachment 29130 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29130 preprocessed test case The Epiphany can do aligned 64 bit loads/stores just fine, and do that with post-increment / modify too, so one ldrd and one strd instruction (each 64 bit) with post-increment would be sufficient to do the loads / stores in the inner loop of the testcase. But because the tree optimizers think they know best how to handle complex values, we end up with three address computation instructions, two loads, and two stores (each 32 bit).