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.