testsuite: Fix regression on m32 by r12-6087 [PR103820]
authorXionghu Luo <luoxhu@linux.ibm.com>
Tue, 11 Jan 2022 02:05:56 +0000 (20:05 -0600)
committerXionghu Luo <luoxhu@linux.ibm.com>
Tue, 11 Jan 2022 08:23:36 +0000 (02:23 -0600)
r12-6087 will avoid move cold bb out of hot loop, while the original
intent of this testcase is to hoist divides out of loop and CSE them to
only one divide.  So increase the loop count to turn the cold bb to hot
bb again.  Then the 3 divides could be rewritten with same reciptmp.

Tested pass on Power-Linux {32,64}, x86 {64,32} and i686-linux.

gcc/testsuite/ChangeLog:

PR testsuite/103820
* gcc.dg/tree-ssa/recip-3.c: Adjust.

gcc/testsuite/gcc.dg/tree-ssa/recip-3.c

index 641c91e719e25668fbf6768397b7b30abccad661..410b28044b48e051753536992591ceb106c2f1e8 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -fno-trapping-math -funsafe-math-optimizations -fdump-tree-recip" } */
 
-double F[2] = { 0.0, 0.0 }, e;
+double F[5] = { 0.0, 0.0 }, e;
 
 /* In this case the optimization is interesting.  */
 float h ()
@@ -13,7 +13,7 @@ float h ()
        d = 2.*e;
        E = 1. - d;
 
-       for( i=0; i < 2; i++ )
+       for( i=0; i < 5; i++ )
                if( d > 0.01 )
                {
                        P = ( W < E ) ? (W - E)/d : (E - W)/d;
@@ -23,4 +23,4 @@ float h ()
        F[0] += E / d;
 }
 
-/* { dg-final { scan-tree-dump-times " / " 5 "recip" } } */
+/* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */