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