On Mon, Jan 11, 2016 at 10:39:58AM -0700, Jeff Law wrote: > On 01/11/2016 10:10 AM, Jakub Jelinek wrote: > >Hi! > > > >As mentioned in the PR, this is a test new in GCC 6, that relies on rtx > >costs to be right to succeed, and on i?86 (32-bit) they are not right. > >While the costs look weird on i?86, it is cost code in generic code, and I'm > >afraid changing those is too risky now so late in stage3, so I'm just > >proposing to restrict this test to the architectures where it is known to > >pass right now. > > > >Tested on x86_64-linux and i686-linux, ok for trunk? > > > >2016-01-11 Jakub Jelinek <ja...@redhat.com> > > > > PR target/67462 > > * gcc.dg/ifcvt-3.c: Only compile on lp64 targets, include also i?86 > > if lp64. > > > >--- gcc/testsuite/gcc.dg/ifcvt-3.c.jj 2015-09-03 17:18:33.000000000 > >+0200 > >+++ gcc/testsuite/gcc.dg/ifcvt-3.c 2016-01-09 09:05:42.234836729 +0100 > >@@ -1,4 +1,4 @@ > >-/* { dg-do compile { target aarch64*-*-* x86_64-*-* } } */ > >+/* { dg-do compile { target { { aarch64*-*-* i?86-*-* x86_64-*-* } && lp64 > >} } } */ > > /* { dg-options "-fdump-rtl-ce1 -O2" } */ > Would it make more sense to xfail the other targets rather than not running > it at all on those targets?
The testcase already is limited to just 2 targets, and anything relating to conditional moves is extremely controversial on i?86/x86_64 anyway, because often it hurts performance instead of improving it. Plus for pre-i686 there are no conditional moves and it might be likely even more expensive in real world. So, I view it as primarily an aarch64 testcase that happens to pass these days on x86_64 64-bit too, but is really very beneficial only on aarch64. Jakub