On Fri, 20 Nov 2020, Tamar Christina wrote:

> Hi All,
> 
> This modifies vectorizable_slp_permutation to update the type of the children
> of a perm node before trying to permute them.  This allows us to be able to
> permute invariant nodes.
> 
> This will be covered by test from the SLP pattern matcher.
> 
> Bootstrapped Regtested on aarch64-none-linux-gnu and no issues.
> 
> Ok for master?

OK.

Thanks,
Richard..

> Thanks,
> Tamar
> 
> gcc/ChangeLog:
> 
>       * tree-vect-slp.c (vectorizable_slp_permutation): Update types on nodes
>       when needed.
> 
> --- inline copy of patch -- 
> diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
> index 
> d2f2407ac92f23724387e893a24c6661b514dafb..92af9cb698a70ae899f31da01415253782ada5d8
>  100644
> --- a/gcc/tree-vect-slp.c
> +++ b/gcc/tree-vect-slp.c
> @@ -5114,7 +5114,8 @@ vectorizable_slp_permutation (vec_info *vinfo, 
> gimple_stmt_iterator *gsi,
>    slp_tree child;
>    unsigned i;
>    FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), i, child)
> -    if (!types_compatible_p (SLP_TREE_VECTYPE (child), vectype))
> +    if (!vect_maybe_update_slp_op_vectype (child, vectype)
> +     || !types_compatible_p (SLP_TREE_VECTYPE (child), vectype))
>        {
>       if (dump_enabled_p ())
>         dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
> 
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imend

Reply via email to