From patchwork Fri Apr 11 18:20:56 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Lawrence X-Patchwork-Id: 338609 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id C9FFE14008B for ; Sat, 12 Apr 2014 04:21:11 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:subject:content-type; q= dns; s=default; b=E/ArepSM425j7DyA4KFqp4cK0RbUFBxmKoMgYSLjnjunND TCKNiadZxw3LgB+8s0HCZ6HV93BQh1r9JaRq0JfWkHb9kL/608RVsLApVE1G/HWj fPR/g7Nkdp0KC1fuQF7JHekLkG8PHhstRf1VCWoOpEdfsHnpbBbtlkijiCjQo= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:subject:content-type; s= default; bh=5i189m06iUri10fslF/EAWZY8ao=; b=wwnO3oFwvo1944kV73JF N2u0il6/Pp5iK8eca8xNeS29MtjziACV7imnzWhdUWOxfrjtxlYAgLkgywfAvOeT THJ2fukjQTn5JZsuKQJB9SJ1SigbqU2/FhQM4DHpNnEXMaVe9mJ4ZbkvoUS4GOsP ioQRml1ld+AGHWCmSRPNNbs= Received: (qmail 22707 invoked by alias); 11 Apr 2014 18:21:05 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 22697 invoked by uid 89); 11 Apr 2014 18:21:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: service87.mimecast.com Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 11 Apr 2014 18:21:02 +0000 Received: from cam-owa2.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Fri, 11 Apr 2014 19:20:59 +0100 Received: from [10.1.209.51] ([10.1.255.212]) by cam-owa2.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 11 Apr 2014 19:21:12 +0100 Message-ID: <53483288.9010706@arm.com> Date: Fri, 11 Apr 2014 19:20:56 +0100 From: Alan Lawrence User-Agent: Thunderbird 2.0.0.24 (X11/20101213) MIME-Version: 1.0 To: "gcc-patches@gcc.gnu.org" Subject: [PATCH, AArch64] Enable shuffle on big-endian and turn on the testsuite X-MC-Unique: 114041119205901401 X-IsSubscribed: yes As a followup to http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00079.html, which implements the shuffle operation but still leaves that unused - if/once that's gone in, I see no reason now we can't start using it, and enable the appropriate tests. I see the following test changes: FAIL->PASS: gcc.c-torture/execute/20000112-1.c execution, -O0 gcc.c-torture/execute/20000112-1.c execution, -O1 gcc.c-torture/execute/900409-1.c execution, -O0 gcc.c-torture/execute/900409-1.c execution, -O1 gcc.c-torture/execute/ieee/20000320-1.c execution, -O0 gcc.c-torture/execute/ieee/20000320-1.c execution, -O1 gcc.dg/vect/no-vfa-vect-depend-2.c scan-tree-dump-times vect "dependence distance negative" 1 gcc.dg/vect/no-vfa-vect-depend-2.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/no-vfa-vect-depend-3.c scan-tree-dump-times vect "dependence distance negative" 4 gcc.dg/vect/no-vfa-vect-depend-3.c scan-tree-dump-times vect "vectorized 1 loops" 4 gcc.dg/vect/slp-perm-1.c -flto -ffat-lto-objects execution test gcc.dg/vect/slp-perm-1.c execution test gcc.dg/vect/slp-perm-3.c -flto -ffat-lto-objects execution test gcc.dg/vect/slp-perm-3.c execution test gcc.dg/vect/slp-perm-5.c -flto -ffat-lto-objects execution test gcc.dg/vect/slp-perm-5.c execution test gcc.dg/vect/slp-perm-6.c -flto -ffat-lto-objects execution test gcc.dg/vect/slp-perm-6.c execution test gcc.dg/vect/slp-perm-7.c -flto -ffat-lto-objects execution test gcc.dg/vect/slp-perm-7.c execution test UNSUPPORTED/NA->PASS: gcc.dg/vect/nodump-forwprop-22.c (test for excess errors) gcc.dg/vect/nodump-forwprop-22.c scan-tree-dump-not copyprop1 "BIT_FIELD_REF" gcc.dg/vect/nodump-forwprop-22.c scan-tree-dump-times copyprop1 "VEC_PERM_EXPR" 1 gcc.dg/vect/pr43432.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/pr43432.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/pr45752.c -flto -ffat-lto-objects scan-tree-dump vect "permutation requires at least three vectors" gcc.dg/vect/pr45752.c scan-tree-dump vect "permutation requires at least three vectors" gcc.dg/vect/slp-38.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops in function" 1 gcc.dg/vect/slp-38.c scan-tree-dump-times vect "vectorized 1 loops in function" 1 gcc.dg/vect/slp-perm-1.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-1.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/slp-perm-1.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-1.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/slp-perm-2.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-2.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/slp-perm-2.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-2.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/slp-perm-3.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-3.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/slp-perm-3.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-3.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/slp-perm-4.c -flto -ffat-lto-objects scan-tree-dump vect "permutation requires at least three vectors" gcc.dg/vect/slp-perm-4.c scan-tree-dump vect "permutation requires at least three vectors" gcc.dg/vect/slp-perm-5.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-5.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 2 gcc.dg/vect/slp-perm-5.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-5.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2 gcc.dg/vect/slp-perm-6.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-6.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 2 gcc.dg/vect/slp-perm-6.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-6.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2 gcc.dg/vect/slp-perm-7.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-7.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/slp-perm-7.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/slp-perm-7.c scan-tree-dump-times vect "vectorizing stmts using SLP" 1 gcc.dg/vect/vect-114.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/vect-114.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/vect-15-big-array.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/vect-15-big-array.c scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/vect-15.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 gcc.dg/vect/vect-15.c scan-tree-dump-times vect "vectorized 1 loops" 1 Also a PASS->NA: gcc.dg/vect/vect-114.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 0 loops" 1 gcc.dg/vect/vect-114.c scan-tree-dump-times vect "vectorized 0 loops" 1 Ok for stage 1 (repeat, only after http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00079.html) ? gcc/ChangeLog: 2014-04-11 Alan Lawrence * config/aarch64/aarch64.c (aarch64_evpc_tbl): enable for bigendian. gcc/testsuite/ChangeLog: 2014-04-11 Alan Lawrence * lib/target-supports.exp (check_effective_target_vect_perm): return true for aarch64_be. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 0c8d77c..d332741 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -8089,11 +8089,6 @@ aarch64_evpc_tbl (struct expand_vec_perm_d *d) enum machine_mode vmode = d->vmode; unsigned int i, nelt = d->nelt; - /* TODO: ARM's TBL indexing is little-endian. In order to handle GCC's - numbering of elements for big-endian, we must reverse the order. */ - if (BYTES_BIG_ENDIAN) - return false; - if (d->testing_p) return true; diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 0d2ccd5..84eb82c 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -3462,8 +3462,7 @@ proc check_effective_target_vect_perm { } { } else { set et_vect_perm_saved 0 if { [is-effective-target arm_neon_ok] - || ([istarget aarch64*-*-*] - && [is-effective-target aarch64_little_endian]) + || [istarget aarch64*-*-*] || [istarget powerpc*-*-*] || [istarget spu-*-*] || [istarget i?86-*-*]