From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21476 invoked by alias); 17 Apr 2011 13:35:58 -0000 Received: (qmail 21403 invoked by uid 22791); 17 Apr 2011 13:35:57 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mtagate2.uk.ibm.com (HELO mtagate2.uk.ibm.com) (194.196.100.162) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 17 Apr 2011 13:35:43 +0000 Received: from d06nrmr1707.portsmouth.uk.ibm.com (d06nrmr1707.portsmouth.uk.ibm.com [9.149.39.225]) by mtagate2.uk.ibm.com (8.13.1/8.13.1) with ESMTP id p3HDZcua014630 for ; Sun, 17 Apr 2011 13:35:38 GMT Received: from d06av04.portsmouth.uk.ibm.com (d06av04.portsmouth.uk.ibm.com [9.149.37.216]) by d06nrmr1707.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p3HDaWtY1966228 for ; Sun, 17 Apr 2011 14:36:32 +0100 Received: from d06av04.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av04.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p3HDZcGi030902 for ; Sun, 17 Apr 2011 07:35:38 -0600 Received: from d12mc102.megacenter.de.ibm.com (d12mc102.megacenter.de.ibm.com [9.149.167.114]) by d06av04.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p3HDZbrk030898; Sun, 17 Apr 2011 07:35:38 -0600 In-Reply-To: References: Subject: Re: [5/9] Main target-independent support for direct interleaving X-KeepSent: A3342A75:6030E98D-C2257875:004A2F8F; type=4; name=$KeepSent To: Richard Sandiford Cc: gcc-patches@gcc.gnu.org, patches@linaro.org Message-ID: From: Ira Rosen Date: Sun, 17 Apr 2011 14:26:00 -0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-IsSubscribed: yes 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 X-SW-Source: 2011-04/txt/msg01318.txt.bz2 gcc-patches-owner@gcc.gnu.org wrote on 12/04/2011 04:59:16 PM: > > This patch adds vec_load_lanes and vec_store_lanes optabs for instructions > like NEON's vldN and vstN. The optabs are defined this way because the > vectors must be allocated to a block of consecutive registers. > > Tested on x86_64-linux-gnu and arm-linux-gnueabi. OK to install? The vectorizer part is fine with me except for: > @@ -685,9 +761,11 @@ vect_model_store_cost (stmt_vec_info stm > first_dr = STMT_VINFO_DATA_REF (stmt_info); > } > > - /* Is this an access in a group of stores, which provide strided access? > - If so, add in the cost of the permutes. */ > - if (group_size > 1) > + /* We assume that the cost of a single store-lanes instruction is > + equivalent to the cost of GROUP_SIZE separate stores. If a strided > + access is instead being provided by a load-and-permute operation, I think it should be 'permute-and-store' and not 'load-and-permute'. > + include the cost of the permutes. */ > + if (!store_lanes_p && group_size > 1) > { > /* Uses a high and low interleave operation for each needed > permute. */ > inside_cost = ncopies * exact_log2(group_size) * group_size Thanks, Ira