The test uses SSSE3 because of the following restriction in i386.c: static bool expand_vec_perm_pshufb2 (struct expand_vec_perm_d *d) { rtx rperm[2][16], vperm, l, h, op, m128; unsigned int i, nelt, eltsz;
if (!TARGET_SSSE3 || GET_MODE_SIZE (d->vmode) != 16) return false; Does the following fix ok? 2014-05-16 Evgeny Stupachenko <evstu...@gmail.com> * gcc.dg/vect/pr52252-ld.c: Fix target for the test. diff --git a/gcc/testsuite/gcc.dg/vect/pr52252-ld.c b/gcc/testsuite/gcc.dg/vect/pr52252-ld.c index 6e3cb52..301433b 100644 --- a/gcc/testsuite/gcc.dg/vect/pr52252-ld.c +++ b/gcc/testsuite/gcc.dg/vect/pr52252-ld.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -g -ftree-vectorize -mssse3 -fdump-tree-vect-details" { target { i?86-*-* x86_64-*-* } } } */ +/* { dg-options "-O2 -g -ftree-vectorize -mssse3 -fdump-tree-vect-details" } */ +/* { dg-skip-if "why" { ! { x86_64-*-* i?86-*-* } } } */ #define byte unsigned char On Tue, May 13, 2014 at 12:21 PM, Richard Biener <rguent...@suse.de> wrote: > On Mon, 12 May 2014, Evgeny Stupachenko wrote: > >> The test is on general changes. However I was able to test it on x86 only. >> I see 2 possible solutions: >> 1. Set the test for x86 only. >> 2. Modify it so that it will pass on sparc-sun-solaris2. >> >> If 2. is not acceptable I'll create patch for 1. >> Currently I don't see why "in0_9 = *in_27" is not supported. Does the >> test fail because of unsupported permutation? > > The test uses > > /* { dg-options "-O2 -g -ftree-vectorize -mssse3 -fdump-tree-vect-details" > { target { i?86-*-* x86_64-*-* } } } */ > > that's bogus. You shouldn't add any dg-options. Instead use proper > dg-effective-target checks for the mssse3 feature you are using. > Note that the dg-final checking is applied regardless of the options > above are applied or not. > > Why does the test only succeed with -mssse3 btw? > > The proper way to restrict the test to a single target is to use > > /* { dg-skip-if "why" { ! { x86_64-*-* i?86-*-* } } } */ > > Sorry for not catching this in the review. > > Richard. > >> >> On Mon, May 12, 2014 at 7:14 PM, Rainer Orth >> <r...@cebitec.uni-bielefeld.de> wrote: >> > Evgeny Stupachenko <evstu...@gmail.com> writes: >> > >> >> Patch with fixes attached. >> >> Currently if-structure is as following: >> >> + if (count == 3) >> >> ... >> >> + else >> >> + { >> >> + /* If length is not equal to 3 then only power of 2 is >> >> supported. */ >> >> + gcc_assert (exact_log2 (count) != -1); >> >> >> >> For stores group I've created another mail thread. >> > [...] >> >>>> 2014-05-06 Evgeny Stupachenko <evstu...@gmail.com> >> >>>> >> >>>> PR tree-optimization/52252 >> >>>> * gcc.dg/vect/pr52252-ld.c: Test on loads group of size 3. >> > >> > This test FAILs on sparc-sun-solaris2.11, both 32 and 64-bit: >> > >> > FAIL: gcc.dg/vect/pr52252-ld.c scan-tree-dump-times vect "vectorized 1 >> > loops" 1 >> > FAIL: gcc.dg/vect/pr52252-ld.c -flto -ffat-lto-objects >> > scan-tree-dump-times vect "vectorized 1 loops" 1 >> > >> > The dumps have >> > >> > /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/pr52252-ld.c:10:3: >> > note: not vectorized: relevant stmt not supported: in0_9 = *in_27; >> > /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/pr52252-ld.c:7:1: >> > note: vectorized 0 loops in function. >> > >> > Rainer >> > >> > -- >> > ----------------------------------------------------------------------------- >> > Rainer Orth, Center for Biotechnology, Bielefeld University >> >> > > -- > Richard Biener <rguent...@suse.de> > SUSE / SUSE Labs > SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 > GF: Jeff Hawn, Jennifer Guild, Felix Imend"orffer