From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21422 invoked by alias); 4 Dec 2012 22:44:39 -0000 Received: (qmail 21374 invoked by uid 22791); 4 Dec 2012 22:44:38 -0000 X-SWARE-Spam-Status: No, hits=-5.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-lb0-f175.google.com (HELO mail-lb0-f175.google.com) (209.85.217.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 04 Dec 2012 22:44:32 +0000 Received: by mail-lb0-f175.google.com with SMTP id gg13so3730795lbb.20 for ; Tue, 04 Dec 2012 14:44:30 -0800 (PST) MIME-Version: 1.0 Received: by 10.152.105.68 with SMTP id gk4mr14374284lab.48.1354661070564; Tue, 04 Dec 2012 14:44:30 -0800 (PST) Received: by 10.114.13.199 with HTTP; Tue, 4 Dec 2012 14:44:30 -0800 (PST) In-Reply-To: <1354617087-31993-1-git-send-email-james.greenhalgh@arm.com> References: <1354617087-31993-1-git-send-email-james.greenhalgh@arm.com> Date: Tue, 04 Dec 2012 22:44:00 -0000 Message-ID: Subject: Re: [Patch AArch64] Implement Vector Permute Support From: Marcus Shawcroft To: James Greenhalgh Cc: gcc-patches@gcc.gnu.org, marcus.shawcroft@arm.com Content-Type: text/plain; charset=ISO-8859-1 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: 2012-12/txt/msg00264.txt.bz2 OK /Marcus On 4 December 2012 10:31, James Greenhalgh wrote: > > Hi, > > This patch adds support for Vector Shuffle style operations > through support for TARGET_VECTORIZE_VEC_PERM_CONST_OK and > the vec_perm and vec_perm_const standard patterns. > > In this patch we add the framework and support for the > generic tbl instruction. This can be used to handle any > vector permute operation, but we can do a better job for > some special cases. The second patch of this series does > that better job for the ZIP, UZP and TRN instructions. > > Is this OK to commit? > > Thanks, > James Greenhalgh > > --- > gcc/ > > 2012-12-04 James Greenhalgh > > * config/aarch64/aarch64-protos.h > (aarch64_split_combinev16qi): New. > (aarch64_expand_vec_perm): Likewise. > (aarch64_expand_vec_perm_const): Likewise. > * config/aarch64/aarch64-simd.md (vec_perm_const): New. > (vec_perm): Likewise. > (aarch64_tbl1): Likewise. > (aarch64_tbl2v16qi): Likewise. > (aarch64_combinev16qi): New. > * config/aarch64/aarch64.c > (aarch64_vectorize_vec_perm_const_ok): New. > (aarch64_split_combinev16qi): Likewise. > (MAX_VECT_LEN): Define. > (expand_vec_perm_d): New. > (aarch64_expand_vec_perm_1): Likewise. > (aarch64_expand_vec_perm): Likewise. > (aarch64_evpc_tbl): Likewise. > (aarch64_expand_vec_perm_const_1): Likewise. > (aarch64_expand_vec_perm_const): Likewise. > (aarch64_vectorize_vec_perm_const_ok): Likewise. > (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Likewise. > * config/aarch64/iterators.md > (unspec): Add UNSPEC_TBL, UNSPEC_CONCAT. > (V_cmp_result): Add mapping for V2DF. > > gcc/testsuite/ > > 2012-12-04 James Greenhalgh > > * lib/target-supports.exp > (check_effective_target_vect_perm): Allow aarch64*-*-*. > (check_effective_target_vect_perm_byte): Likewise. > (check_effective_target_vect_perm_short): Likewise. > (check_effective_target_vect_char_mult): Likewise. > (check_effective_target_vect_extract_even_odd): Likewise. > (check_effective_target_vect_interleave): Likewise.