Mmmm, I've made a few attempts at filtering according to LP64 and ILP32, but not managed to get anything working so far (that is, I've ended up with the test not being executed on platforms where it should)....ah, I see now where I've been going wrong, patch attached. The original intent was pretty much to execute the test on everything with the appropriate word size, i.e. where a 64-bit comparison would be done in 64 bits rather than emulated in 2*32; and for 32-bit where that was not sign-extended to 64 (or some other such problem). The architectures I wrote in the file, were those on which I tested the rtl dump, excluding some archs where you get (neg (lt 0 x)) rather than (neg (ge x 0)); but the latter really shouldn't be a problem, it should be possible to use a regex matching either form, and then drop the target selection. However, as a quick first step, does adding the ilp32 / lp64 (and keeping the architectures list for now) solve the immediate problem? Patch attached, OK for trunk? gcc/testsuite/ChangeLog: * gcc.dg/combine_ashiftrt_1.c: require-effective-target LP64 * gcc.dg/combine_ashiftrt_2.c: require-effective-target ILP32 --Alan ________________________________________ From: Rainer Orth [ro@cebitec.uni-bielefeld.de] Sent: 23 October 2014 14:10 To: Andreas Schwab Cc: Alan Lawrence; Jeff Law; gcc-patches@gcc.gnu.org Subject: Re: [PATCH] Relax check against commuting XOR and ASHIFTRT in combine.c Andreas Schwab writes: > Alan Lawrence writes: > >> diff --git a/gcc/testsuite/gcc.dg/combine_ashiftrt_1.c >> b/gcc/testsuite/gcc.dg/combine_ashiftrt_1.c >> new file mode 100644 >> index >> 0000000000000000000000000000000000000000..90e64fd10dc358f10ad03a90041605bc3ccb7011 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.dg/combine_ashiftrt_1.c >> @@ -0,0 +1,18 @@ >> +/* { dg-do compile {target sparc64*-*-* aarch64*-*-* x86_64-*-* >> powerpc64*-*-*} } */ > > You should check for lp64 instead of matching 64 in target names, to > reject -m32. > >> diff --git a/gcc/testsuite/gcc.dg/combine_ashiftrt_2.c >> b/gcc/testsuite/gcc.dg/combine_ashiftrt_2.c >> new file mode 100644 >> index >> 0000000000000000000000000000000000000000..fd6827caed230ea5dd2d6ec4431b11bf826531ea >> --- /dev/null >> +++ b/gcc/testsuite/gcc.dg/combine_ashiftrt_2.c >> @@ -0,0 +1,18 @@ >> +/* { dg-do compile {target arm*-*-* i?86-*-* powerpc-*-* sparc-*-*} } */ > > Likewise, using ilp32 to reject -m64. Right, the current target lists are simply bogus on biarch targets. Alan, what's the reasoning behind your current target lists here? Any reason the test couldn't work elsewhere? If not, it would be way better to introduce a corresponding effective-target keyword than listing particular targets without explanation. This needs to be fixed: the issue is knowns for three weeks now and causes testsuite noise on many platforms. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University