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> */