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, OK for master? gcc/testsuite/ChangeLog: PR 103820 * gcc.dg/tree-ssa/recip-3.c: Adjust. --- gcc/testsuite/gcc.dg/tree-ssa/recip-3.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c b/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c index 641c91e719e..410b28044b4 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c @@ -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" } } */ -- 2.27.0.90.geebb51ba8c