This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Support addsub/subadd as non-isomorphic operations for SLP vectorizer.
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Cong Hou <congh at google dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Richard Biener <rguenther at suse dot de>
- Date: Fri, 15 Nov 2013 18:18:02 +0000
- Subject: Re: [PATCH] Support addsub/subadd as non-isomorphic operations for SLP vectorizer.
- Authentication-results: sourceware.org; auth=none
- References: <CAK=A3=0jwnwHsyoOnPq1yDwSC=KJHfXwgpyMwvOaCLtqCTo_5g at mail dot gmail dot com>
On 15/11/13 02:06, Cong Hou wrote:
> Hi
>
> This patch adds the support to two non-isomorphic operations addsub
> and subadd for SLP vectorizer. More non-isomorphic operations can be
> added later, but the limitation is that operations on even/odd
> elements should still be isomorphic. Once such an operation is
> detected, the code of the operation used in vectorized code is stored
> and later will be used during statement transformation. Two new GIMPLE
> opeartions VEC_ADDSUB_EXPR and VEC_SUBADD_EXPR are defined. And also
> new optabs for them. They are also documented.
>
Not withstanding what Richi has already said on this subject, you
certainly don't need both VEC_ADDSUB_EXPR and VEC_SUBADD_EXPR. The
latter can always be formed by vec-negating the second operand and
passing it to VEC_ADDSUB_EXPR.
R.