Hi, As discussed in the PR, the new cdce3.c test fails on arm-linux-gnueabi, and passes on arm-linux-gnueabihf.
On arm-linux-gnueabi, the generated code is: .arm .fpu softvfp .type foo, %function foo: b sqrtf on arm-liunx-gnueabihf, it is: .arm .fpu neon .type foo, %function foo: vcmp.f32 s0, #0 vmrs APSR_nzcv, FPSCR vmov.f32 s15, s0 bmi .L10 vsqrt.f32 s0, s15 bx lr .L10: b sqrtf Actually both generate a tail-call, but only the latter says "function call is shrink-wrapped into error conditions." in the dumps. According to what JunMa says in the PR, it seems we want to restrict this testcase to hard-float cases, so that's what this small patch does. OK? Christophe
diff --git a/gcc/testsuite/gcc.dg/cdce3.c b/gcc/testsuite/gcc.dg/cdce3.c index 8a74379..7e85d8a 100644 --- a/gcc/testsuite/gcc.dg/cdce3.c +++ b/gcc/testsuite/gcc.dg/cdce3.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ +/* { dg-require-effective-target hard_float } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -fdump-tree-optimized" } */ -/* { dg-final { scan-tree-dump "cdce3.c:9: \[^\n\r]* function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-final { scan-tree-dump "cdce3.c:10: \[^\n\r]* function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "sqrtf \\(\[^\n\r]*\\); \\\[tail call\\\]" "optimized" } } */ float sqrtf (float);
2019-05-20 Christophe Lyon <christophe.l...@linaro.org> PR tree-optimization/90106 * gcc.dg/cdce3.c: Add hard_float effective target.