https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103802
--- Comment #4 from luoxhu at gcc dot gnu.org ---
Or restore the previous recip count check by comment out the if condition to
avoid bb in loop turns cold?
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c
b/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c
index 641c91e719e..d3c3053486d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c
@@ -14,7 +14,13 @@ float h ()
E = 1. - d;
for( i=0; i < 2; i++ )
- if( d > 0.01 )
+ // if( d > 0.01 )
+ /* The if condition will make followed bb cold (profile count
+ less then the loop preheader), while r12-6087 is a
+ optimization that avoids move COLD invariant expression out
+ of loop, since this test case is to test recip expression
+ could be CSE and eliminated, so comment the condition to
keep
+ the test point. */
{
P = ( W < E ) ? (W - E)/d : (E - W)/d;
F[i] += P;
@@ -23,4 +29,4 @@ float h ()
F[0] += E / d;
}
-/* { dg-final { scan-tree-dump-times " / " 5 "recip" } } */
+/* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */