Igor Zamyatin <izamya...@gmail.com> wrote on 29/12/2011 02:29:46 PM:
> > Because it includes AVX and AVX2 which deals with int and for AVX2 > there are no problems with doubled diagnostics. And you can't just update vect_int because AVX does support it but with 128-bit vectors, right? So, your vect_float_no_int looks incorrect as well. You need to describe the case when two vector sizes are analyzed, but the first one always fails. Maybe vect_sizes_32B_16B_noint? Probably ugly, but correct at least. I also suggest to simplify the checks and not to check the number of times a pattern was detected , like this: Index: vect-widen-mult-half.c =================================================================== --- vect-widen-mult-half.c (revision 182703) +++ vect-widen-mult-half.c (working copy) @@ -43,7 +43,7 @@ int main (void) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_mult_hi_to_si } } } */ -/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ +/* { dg-final { scan-tree-dump "vect_recog_widen_mult_pattern: detected" "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ /* { dg-final { scan-tree-dump-times "pattern recognized" 1 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ /* { dg-final { cleanup-tree-dump "vect" } } */ And split the tests with several loops into several files, like, for example, vect-widen-mult-const-s16.c. The simplification is ok for slp-reduc-6.c, vect-119.c, vect-35-big-array.c as well. For the rest of the tests, I don't understand why there are alignment messages printed twice for two vector sizes. Why doesn't the vectorizer fail during vect_determine_vectorization_factor? Ira > > I understand that all this looks quite bulky but it's hard to create > something which looks better without loosing generality > > > On Thu, Dec 29, 2011 at 4:15 PM, Ira Rosen <i...@il.ibm.com> wrote: > > > > > > Igor Zamyatin <izamya...@gmail.com> wrote on 29/12/2011 02:04:45 PM: > > > >> When compiler configured with, say corei7-avx, it outputs twice more > >> diagnostics on integer tests since AVX deals mostly with floats. I.e. > >> compiler tries to vectorize on AVX vector size, than fails and then > >> vectorizes on smaller vector size. This double work leads to double > >> diagnostic output. > > > > OK, so you why not use vect_sizes_32B_16B? > > > > Ira > > > > >