https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63150

            Bug ID: 63150
           Summary: [4.9 regression] FAIL: gcc.target/powerpc/pr53199.c
                    scan-assembler-times *
           Product: gcc
           Version: 4.9.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: regression
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ma...@linux-mips.org
            Target: powerpc-linux-gnu
             Build: i686-pc-linux-gnu

I see these failures in Power/Linux testing with 4.9.1 and also trunk
(5.0), so presumably the regression happened sometime between 4.8 and
4.9:

FAIL: gcc.target/powerpc/pr53199.c scan-assembler-times lwbrx 6
FAIL: gcc.target/powerpc/pr53199.c scan-assembler-times stwbrx 6

These tests passed with 4.8.  This is with powerpc-linux-gnu.

I've looked at generated assembly and actually 2 out of 6 cases fail:
load64_reverse_2 and store64_reverse_2, the remaining 4 are fine.  In
all cases code produced looks correct, so this is a missed optimisation
rather a code correctness issue.

Options used to configure the compiler:

--build=i686-pc-linux-gnu
--target=powerpc-linux-gnu
--with-cpu-32=603e
--with-cpu-64=e5500
--with-long-double-128

Actually even with 4.8 code that the test case accepts it looks like
we've got another missed optimisation here because we do:

    lwbrx 8,0,9
    lwbrx 7,0,10
    mr 4,8
    mr 3,7
    blr

while we could do:

    lwbrx 4,0,9
    lwbrx 3,0,10
    blr

instead.  But that's of course a different matter.

Reply via email to