On 10/15/2015 07:18 AM, Richard Sandiford wrote:
Stripping unnecessary sign ops at the gimple level means that we're
no longer able to optimise:

   if (cos(y<10 ? -fabs(x) : tan(x<20 ? -x : -fabs(y)))
       != cos(y<10 ? x : tan(x<20 ? x : y)))
     link_error ();

because we're currently not able to fold away the equality in:

int
f1 (double x, double y)
{
   double z1 = __builtin_cos(y<10 ? x : __builtin_tan(x<20 ? x : y));
   double z2 = __builtin_cos(y<10 ? x : __builtin_tan(x<20 ? x : y));
   return z1 == z2;
}

The missed fold is being tracked as PR 67975.  This patch splits the
test out into a separate file so that we can XFAIL it until the PR
is fixed.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
OK to install?

Thanks,
Richard


gcc/testsuite/
        * gcc.dg/builtins-20.c: Move some tests to...
        * gcc.dg/builtins-86.c: ...this new file.
Yes. I just went through this in a totally unrelated area. I'd much rather have the test split out and xfailed.

jeff

Reply via email to