From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4004 invoked by alias); 15 Nov 2013 18:18:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 3991 invoked by uid 89); 15 Nov 2013 18:18:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.8 required=5.0 tests=AWL,BAYES_50,RDNS_NONE,SPF_PASS autolearn=no version=3.3.2 X-HELO: service87.mimecast.com Received: from Unknown (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 15 Nov 2013 18:18:13 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Fri, 15 Nov 2013 18:18:04 +0000 Received: from [10.1.208.33] ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 15 Nov 2013 18:18:03 +0000 Message-ID: <5286655A.90102@arm.com> Date: Fri, 15 Nov 2013 19:25:00 -0000 From: Richard Earnshaw User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 To: Cong Hou CC: GCC Patches , Richard Biener Subject: Re: [PATCH] Support addsub/subadd as non-isomorphic operations for SLP vectorizer. References: In-Reply-To: X-MC-Unique: 113111518180406301 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2013-11/txt/msg01871.txt.bz2 On 15/11/13 02:06, Cong Hou wrote: > Hi >=20 > 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. >=20 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.