As you note in the comments, the code we generate now is actually more
efficient so the test needs to be tweaked.

Rather than checking the form in doloop, I check the form in .combine
and look for

(compare:CC (zero_extend:DI (reg:SI

The test is also twiddled to run on ppc64le.

OK for the trunk?

Jeff
        PR testsuite/81010
        * gcc.target/powerpc/pr56605.c: Run on ppc64le too.  Verify
        the zero extension is part of the test in the combiner dump.



diff --git a/gcc/testsuite/gcc.target/powerpc/pr56605.c 
b/gcc/testsuite/gcc.target/powerpc/pr56605.c
index 3bc335f..be6456c 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr56605.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr56605.c
@@ -1,7 +1,7 @@
 /* PR rtl-optimization/56605 */
-/* { dg-do compile { target { powerpc64-*-* && lp64 } } } */
+/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { 
"-mcpu=power7" } } */
-/* { dg-options "-O3 -mvsx -mcpu=power7 -fno-unroll-loops 
-fdump-rtl-loop2_doloop" } */
+/* { dg-options "-O3 -mvsx -mcpu=power7 -fno-unroll-loops -fdump-rtl-combine" 
} */
 
 void foo (short* __restrict sb, int* __restrict ia)
 {
@@ -10,4 +10,4 @@ void foo (short* __restrict sb, int* __restrict ia)
     ia[i] = (int) sb[i];
 }
 
-/* { dg-final { scan-rtl-dump-times "\\\(compare:CC \\\(subreg:SI \\\(reg:DI" 
1 "loop2_doloop" } } */
+/* { dg-final { scan-rtl-dump-times "\\\(compare:CC \\\(zero_extend:DI 
\\\(reg:SI" 1 "combine" } } */

Reply via email to