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).

Reply via email to