I have a long diatribe on the PR as to why the current generated code is correct, and more optimal than when the test used to "pass". Bottom line is that we now perform less branches and less loads/stores, at the expense of one register to register move.

        http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55565

Jakub has been kind enough to provide an updated regex for the test.

Tested on an x86-64 Linux cross to powerpc64-linux-gnu with:

  make check-gcc RUNTESTFLAGS=powerpc.exp=ppc-mov-1.c

(by first removing the { target { powerpc*... } }).

OK for trunk?
commit 692859f796d90eebd97ad97ad872bbb7b7f49c12
Author: Aldy Hernandez <al...@redhat.com>
Date:   Thu Jan 10 11:58:37 2013 -0600

        PR target/55565
        * gcc.target/powerpc/ppc-mov-1.c: Update scan-assembler-not
        regex.

diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c 
b/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c
index 750cf85..d9439d9 100644
--- a/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c
@@ -1,7 +1,7 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
 /* { dg-options "-O2" } */
 
-/* { dg-final { scan-assembler-not "fmr \[0-9\]+,\[0-9\]+" } }
+/* { dg-final { scan-assembler-not "lfd \(\[0-9\]+\),\[^\n\r\]*\[\n\r\]+\[ 
\t]*fmr 1,\\1\[\n\r\]+\[ \t]*blr" } } */
 
 /* Origin:Pete Steinmetz <stein...@us.ibm.com> */
 

Reply via email to