This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
On Tue, 12 Sep 2017, Richard Biener wrote:
> On Tue, 12 Sep 2017, Tamar Christina wrote:
>
> > Hi Jon, Richard,
> >
> > > > >
> > > > > Testing the following instead:
> > > >
> > > > Any news on this?
> > >
> > > Didn't work out as expected. I think the logic in tree-vect-generic is the one
> > > to be fixed but I have to carve out some time to look into it so stay tuned.
> >
> > In the meantime can this patch be reverted? It is causing ICEs on
> > AArch64 and ARM Preventing us from building benchmarks and tracking the
> > toolchain performance.
>
> You can always locally patch things. I have yet another patch in
> testing right now.
I've installed the following.
Bootstrapped and tested on x86_64-unknown-linux-gnu.
Richard.
2017-09-12 Richard Biener <rguenther@suse.de>
* tree-vect-generic.c (expand_vector_operations_1): Do nothing
for operations we cannot scalarize.
Index: gcc/tree-vect-generic.c
===================================================================
--- gcc/tree-vect-generic.c (revision 251997)
+++ gcc/tree-vect-generic.c (working copy)
@@ -1638,7 +1638,11 @@ expand_vector_operations_1 (gimple_stmt_
/* The signedness is determined from input argument. */
if (code == VEC_UNPACK_FLOAT_HI_EXPR
|| code == VEC_UNPACK_FLOAT_LO_EXPR)
- type = TREE_TYPE (rhs1);
+ {
+ type = TREE_TYPE (rhs1);
+ /* We do not know how to scalarize those. */
+ return;
+ }
/* For widening/narrowing vector operations, the relevant type is of the
arguments, not the widened result. VEC_UNPACK_FLOAT_*_EXPR is
@@ -1655,7 +1659,11 @@ expand_vector_operations_1 (gimple_stmt_
|| code == VEC_PACK_FIX_TRUNC_EXPR
|| code == VEC_WIDEN_LSHIFT_HI_EXPR
|| code == VEC_WIDEN_LSHIFT_LO_EXPR)
- type = TREE_TYPE (rhs1);
+ {
+ type = TREE_TYPE (rhs1);
+ /* We do not know how to scalarize those. */
+ return;
+ }
/* Choose between vector shift/rotate by vector and vector shift/rotate by
scalar */
- References:
- Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations
- RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations