From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21596 invoked by alias); 12 Apr 2011 13:21:04 -0000 Received: (qmail 21579 invoked by uid 22791); 12 Apr 2011 13:21:03 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-ww0-f51.google.com (HELO mail-ww0-f51.google.com) (74.125.82.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 12 Apr 2011 13:20:59 +0000 Received: by mail-ww0-f51.google.com with SMTP id 26so7640350wwf.8 for ; Tue, 12 Apr 2011 06:20:58 -0700 (PDT) Received: by 10.216.9.141 with SMTP id 13mr3967620wet.73.1302614458336; Tue, 12 Apr 2011 06:20:58 -0700 (PDT) Received: from richards-thinkpad (gbibp9ph1--blueice2n1.emea.ibm.com [195.212.29.75]) by mx.google.com with ESMTPS id t72sm3180659wei.20.2011.04.12.06.20.56 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 12 Apr 2011 06:20:56 -0700 (PDT) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@linaro.org Subject: [0/9] Direct support for loads and stores of interleaved vectors Date: Tue, 12 Apr 2011 13:21:00 -0000 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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/msg00873.txt.bz2 The vectoriser can handle interleaved loads such as: for (int i = 0; i < N; i++) res[i] = a[2 * i] + a[2 * i + 1]; The vectorised code loads two consecutive vectors from A, then permutes the elements. It can handle stores in a similar way. This patch series adds support for load and store instructions that have the interleaving "built in", such as NEON's vldN and vstN. The series is based on the outline here: http://gcc.gnu.org/ml/gcc/2011-03/msg00322.html except that I'm now using "internal" functions rather than built-ins. I'll update my internal function patch: http://gcc.gnu.org/ml/gcc-patches/2011-04/msg00609.html after Richard's recent changes and retest, but the patches in this series are unaffected. Richard