This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Suitable regression test for vectorizer patches?
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: joern dot rennecke at riscy-ip dot com
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Tue, 30 Oct 2018 09:36:28 +0100
- Subject: Re: Suitable regression test for vectorizer patches?
- References: <5BD74A14.3090303@riscy-ip.com>
On Mon, Oct 29, 2018 at 7:03 PM Joern Wolfgang Rennecke
<joern.rennecke@riscy-ip.com> wrote:
>
> I want to submit some vectorizer patches, what would be a suitable
> regression test?
I am sure you have testcases, no? For new features please make them
dg-do run ones by checking correctness.
> Preferably some native or cross test that can run on an i7 x86_64
> GNU/Linux machine.
You are probably talking about the need for specific HW features?
We have dg-requires-effective-target FOO where IIRC there are
ones that enable extra options for compilation (look for avx-runtime
or so for example).
Richard.
>
> To give an idea what code I'm patching, here are the patches I got so far:
>
> * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Recognize
> unsigned dot product pattern.
>
> Allow widening multiply-add to be used for DOT_PROF_EXPR reductions.
> * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
> Treat WIDEN_MULT_PLUS_EXPR like WIDEN_SUM_EXPR.
> * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
> Get VECTYPE from STMT_VINFO_VECTYPE.
> (vect_determine_vectorization_factor):
> Allow vcector size input/output mismatch for reduction.
> (vect_analyze_scalar_cycles_1): When we find a phi for a reduction,
> put the reduction statement into the phi's STMT_VINFO_RELATED_STMT.
> * tree-vect-patterns.c (vect_pattern_recog_1): If DOT_PROD_EXPR
> can't
> be expanded directly, try to use WIDEN_MULT_PLUS_EXPR instead.
>
> Fix bug where a vectorizer reduction split (from
> TARGET_VECTORIZE_SPLIT_REDUCTION)
> would end up not being used.
> * tree-vect-loop.c (vect_create_epilog_for_reduction):
> If we split the reduction, use the result in Case 3 too.