Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-27 Thread Dominique Dhumieres
The patch at http://gcc.gnu.org/ml/gcc-patches/2011-12/msg01600/vec-tests-avx2_fixes-7.patch fixes the XPASS, tested on powerpc-apple-darwin9 and x86_64-apple-darwin10. Thanks, Dominique

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-21 Thread Michael Zolotukhin
Thanks! Yes, those xpasses were introduced by the changes in dg-scans I recently made, but I'm not sure if there is an error in them: in these three tests compiler for some reason assume that arrays are aligned to 16 byte even in 32-bit mode (AFAIK, ABI requirement for arrays alignment is alignment

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-21 Thread Uros Bizjak
On Mon, Dec 19, 2011 at 9:47 AM, Michael Zolotukhin wrote: >> What do you mean no tests require it?  For instance, all of the ones >> that currently pass with with vect_perm? > Current implementation of vect_perm doesn't check for SSSE3 - so any > x86 target is supposed to support permutation. > >

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-19 Thread Mike Stump
On Dec 19, 2011, at 10:15 AM, Michael Zolotukhin wrote: > Thanks, Richard! > Is anyone else's approve needed for commit? > > Michael > > On 19 December 2011 20:55, Richard Henderson wrote: >> On 12/19/2011 12:47 AM, Michael Zolotukhin wrote: >>> Ok, those were just attempts to adjust dg-scans in

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-19 Thread Michael Zolotukhin
Thanks, Richard! Is anyone else's approve needed for commit? Michael On 19 December 2011 20:55, Richard Henderson wrote: > On 12/19/2011 12:47 AM, Michael Zolotukhin wrote: >> Ok, those were just attempts to adjust dg-scans in slp-perm-9.c, in >> which one more loop was vectorized when compiled

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-19 Thread Richard Henderson
On 12/19/2011 12:47 AM, Michael Zolotukhin wrote: > Ok, those were just attempts to adjust dg-scans in slp-perm-9.c, in > which one more loop was vectorized when compiled with -mavx2. In fact, > just SSSE3 isn't enough for vectorization of this loop - it seems that > vector size also matters, so I

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-19 Thread Michael Zolotukhin
> What do you mean no tests require it? For instance, all of the ones > that currently pass with with vect_perm? Current implementation of vect_perm doesn't check for SSSE3 - so any x86 target is supposed to support permutation. > Just leave vect_perm alone for now. That may not be absolutely >

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-16 Thread Richard Henderson
On 12/16/2011 09:44 AM, Michael Zolotukhin wrote: >> Why? SSSE3 *really can* do arbitrary permutation. If you say that >> isn't enough, then there's something wrong in the back end, and all >> you're doing is papering over a bug. > Yes, sure, SSSE3 is enough for that. I checked for AVX in vect_pe

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-16 Thread Michael Zolotukhin
> Why? SSSE3 *really can* do arbitrary permutation. If you say that > isn't enough, then there's something wrong in the back end, and all > you're doing is papering over a bug. Yes, sure, SSSE3 is enough for that. I checked for AVX in vect_perm just because there is no check for SSSE3 and no test

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-16 Thread Richard Henderson
On 12/15/2011 11:21 PM, Michael Zolotukhin wrote: > E.g., in vect-114.c we need permutation only for reversing vector > elements, even ssse3 isn't required for it ... Sure. > while in slp-perm-9 such permutation isn't enough. Why? SSSE3 *really can* do arbitrary permutation. If you say that is

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-15 Thread Michael Zolotukhin
> Well, ppc and spe support arbitrary permutation, which are the only other > two listed with vec_perm. > > As for i386, we support arbitrary permutation beginning with ssse3. > > So, don't add vect_any_perm. Use vec_perm and figure out what's really > wrong with slp-perm-9. Thanks, that's right,

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-15 Thread Richard Henderson
On 12/15/2011 10:22 AM, Michael Zolotukhin wrote: >> This is vect_perm. Why are you inventing a new one? > As far as I understand, vect_perm is true if target supports at least > some vector-permutation, while vect_any_perm is intended to be true if > arbitrary permutation is supported (like in av

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-15 Thread Michael Zolotukhin
> This is vect_perm. Why are you inventing a new one? As far as I understand, vect_perm is true if target supports at least some vector-permutation, while vect_any_perm is intended to be true if arbitrary permutation is supported (like in avx). It was introduced because vectorization began to occu

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-15 Thread Richard Henderson
> +# Return 1 if the target supports instructions for arbitrary permutations. > +# > +# This won't change for different subtargets so cache the result. > + > +proc check_effective_target_vect_any_perm { } { This is vect_perm. Why are you inventing a new one? r~

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-15 Thread Ira Rosen
Uros Bizjak wrote on 15/12/2011 09:56:12 AM: > On Thu, Dec 15, 2011 at 5:16 AM, Michael Zolotukhin > wrote: > > Thanks! > > Fixed patch is attached. > > > > Any other comments? > > > > Changelog: > > 2011-12-14  Michael Zolotukhin   > > > >        * gcc.dg/vect/no-section-anchors-vect-31.c: Ad

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-14 Thread Uros Bizjak
On Thu, Dec 15, 2011 at 5:16 AM, Michael Zolotukhin wrote: > Thanks! > Fixed patch is attached. > > Any other comments? > > Changelog: > 2011-12-14  Michael Zolotukhin   > >        * gcc.dg/vect/no-section-anchors-vect-31.c: Adjust array size and test >        diag-scans to fix fail on AVX. >    

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-14 Thread Michael Zolotukhin
Thanks! Fixed patch is attached. Any other comments? Changelog: 2011-12-14 Michael Zolotukhin * gcc.dg/vect/no-section-anchors-vect-31.c: Adjust array size and test diag-scans to fix fail on AVX. * gcc.dg/vect/no-section-anchors-vect-36.c: Ditto. * gcc.dg/vect/

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-14 Thread Uros Bizjak
Hello! Just a nit: +proc check_prefer_avx128_specified { } { Please name this function check_prefer_avx128. Nothing was specified anywhere. Thanks, Uros.

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-14 Thread Michael Zolotukhin
> Meh. This seems excruciatingly error prone. > > I think we should simply re-write the test cases so that it doesn't > matter how many times we see a particular string. Don't combine so > many (potentially vectorizable) loops within a test case that it matters. Some rework on tests looks better

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-13 Thread Richard Henderson
On 12/12/2011 09:44 PM, Michael Zolotukhin wrote: > Should we introduce checks for each possible vector datatype (e.g. > vect_8byte_int_available, vect_16byte_int_available, > vect_32byte_int_available, vect_16byte_float_available, > vect_32byte_float_available etc.) along with a check for > prefer

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Michael Zolotukhin
> And even this is insufficient, since you need to distinguish between multiple > integer vector sizes and multiple fp vector sizes, aka AVX vs AVX2. Should we introduce checks for each possible vector datatype (e.g. vect_8byte_int_available, vect_16byte_int_available, vect_32byte_int_available,

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Richard Henderson
On 12/12/2011 12:07 AM, Jakub Jelinek wrote: > Which is why introducing > vect_multiple_sizes_32B_16B (for -mno-prefer-128) and > vect_multiple_sizes_16B_32B (for -mprefer-128) and using it in the tests > could solve it. And even this is insufficient, since you need to distinguish between multiple

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Jakub Jelinek
On Mon, Dec 12, 2011 at 02:16:04PM +0200, Ira Rosen wrote: > Michael Zolotukhin wrote on 12/12/2011 > 01:57:09 PM: > > > > > By the way, how could we check if '-mprefer-avx128' was specified from > > target-supports.exp? > > > > If I understand your question correctly, you can use check-flags (s

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Ira Rosen
Michael Zolotukhin wrote on 12/12/2011 01:57:09 PM: > > By the way, how could we check if '-mprefer-avx128' was specified from > target-supports.exp? > If I understand your question correctly, you can use check-flags (see check_effective_target_arm_fp16_ok_nocache for example). > Is there any

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Jakub Jelinek
On Mon, Dec 12, 2011 at 03:57:09PM +0400, Michael Zolotukhin wrote: > By the way, how could we check if '-mprefer-avx128' was specified from > target-supports.exp? Is there any global-variable for command line > options or something similar? I'd say try some very simple vectorized loop and check h

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Michael Zolotukhin
> I think there is a difference between different vector sizes, and calling > it vect_X_vector_size_available is not sufficient. Your patch will cause > failures on ARM. It has two vector sizes, 16 and 8 bytes. E.g., vect-33.c > gets vectorized with the default vector size, and the alignment messag

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Ira Rosen
gcc-patches-ow...@gcc.gnu.org wrote on 12/12/2011 01:00:52 PM: > I changed xfails to target-checks - for now I use common > vect_multiple_sizes (though it'll fail when wider vectors emerge). > Also, I changed AVX-check to the version Uros suggested. Please check > updated patch (attached). > > A

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Jakub Jelinek
On Mon, Dec 12, 2011 at 03:00:52PM +0400, Michael Zolotukhin wrote: > I changed xfails to target-checks - for now I use common > vect_multiple_sizes (though it'll fail when wider vectors emerge). > Also, I changed AVX-check to the version Uros suggested. Please check > updated patch (attached). >

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Michael Zolotukhin
I changed xfails to target-checks - for now I use common vect_multiple_sizes (though it'll fail when wider vectors emerge). Also, I changed AVX-check to the version Uros suggested. Please check updated patch (attached). As for vect_multiple_sizes_32B_16B and similar - isn't it too target-specific?

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Uros Bizjak
Hello! > This patch fixes dg-final scans in tests from vect.exp suite, which > currently fail when avx2 is used. --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c @@ -88,5 +88,6 @@ int main (void) /* { dg-final { scan-tree-

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Jakub Jelinek
On Mon, Dec 12, 2011 at 12:00:47PM +0400, Michael Zolotukhin wrote: > The problem is that when vect_multiple_sizes is true, then no correct > number exist (at least, theoretically). That's because number of > diagnostic messages depends on number of available vector sizes - for > now this number is

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-12 Thread Michael Zolotukhin
The problem is that when vect_multiple_sizes is true, then no correct number exist (at least, theoretically). That's because number of diagnostic messages depends on number of available vector sizes - for now this number is usually 2 (on x86 it's 256 and 128 bit vectors), so we could change 'xfail'

Re: [Patch] Adjust diag-scans in vect-tests to fix fails on AVX/AVX2

2011-12-11 Thread Jakub Jelinek
On Mon, Dec 12, 2011 at 11:06:37AM +0400, Michael Zolotukhin wrote: diff --git a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c index 21b87a3..f75253e 100644 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c +++ b/gcc/test