From patchwork Wed Jul 9 14:37:15 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kyrylo Tkachov X-Patchwork-Id: 368236 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 54A1F140116 for ; Thu, 10 Jul 2014 00:37:35 +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:cc:subject:content-type; q=dns; s=default; b=X62dXcjOkAlcJ1MRErgoqjYq7imcLiQTxMsb7zX/h67 3mP8dXod+ZilpX8v95KJGv4eKV6S/k/rGrsDkRroPfGpDgMLX/UfxNDVBmQfDlit k1P5Vvbwh2q3yQkfHWQdY5VTgyLTyJmGsAJTBIcGpim5zg7EIwKRqAuIU8zeJA/U = 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:cc:subject:content-type; s=default; bh=/975ge8YImAeyjtUxE+4J1Ul74I=; b=xSie7KJfs1aOMcn33 soCYyPHiQT0R5wp7lefRx6AmF+vbEmxMNE0hGdNQuI+tfe1OXVvcxFojON33rf1p g/SqxAGYw/S0UL+2xyQHOlK3GoLrvT9/auGbaPTwg3h389Y3zWkPvbow66hgNZAq LEHQuT00KYwOw262BLG3q1SP4g= Received: (qmail 24481 invoked by alias); 9 Jul 2014 14:37:28 -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 24459 invoked by uid 89); 9 Jul 2014 14:37:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 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; Wed, 09 Jul 2014 14:37:21 +0000 Received: from cam-owa2.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Wed, 09 Jul 2014 15:37:18 +0100 Received: from [10.1.208.24] ([10.1.255.212]) by cam-owa2.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 9 Jul 2014 15:37:16 +0100 Message-ID: <53BD539B.3070200@arm.com> Date: Wed, 09 Jul 2014 15:37:15 +0100 From: Kyrill Tkachov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: GCC Patches CC: Marcus Shawcroft Subject: [PATCH][AArch64] Fix argument types for some high_lane* intrinsics implemented in assembly X-MC-Unique: 114070915371805501 X-IsSubscribed: yes Hi all, These intrinsics are implemented as macros that map down to asms but the types they accept are inconsistent with the ACLE spec. This patch fixes them, although they should be reimplemented properly in C in the future. This is a bugfix and it applies cleanly to trunk, 4.9 and 4.8. I know we're close to the 4.9.1 release, but this is not an ABI-breaking change so it's the aarch64 maintainers' call on whether it should be backported. Tested aarch64-none-elf Ok? Thanks, Kyrill 2014-07-09 Kyrylo Tkachov * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type. (vmlal_high_lane_s32): Likewise. (vmlal_high_lane_u16): Likewise. (vmlal_high_lane_u32): Likewise. (vmlsl_high_lane_s16): Likewise. (vmlsl_high_lane_s32): Likewise. (vmlsl_high_lane_u16): Likewise. (vmlsl_high_lane_u32): Likewise. commit 991893519ceea282bfaf696b88d5c9291ce2e3a0 Author: Kyrylo Tkachov Date: Thu Jun 26 13:59:19 2014 +0100 [AArch64] Fix types for some assembly intrinsics diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 7807181..9e8d15a 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -6735,7 +6735,7 @@ vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlal_high_lane_s16(a, b, c, d) \ __extension__ \ ({ \ - int16x8_t c_ = (c); \ + int16x4_t c_ = (c); \ int16x8_t b_ = (b); \ int32x4_t a_ = (a); \ int32x4_t result; \ @@ -6749,7 +6749,7 @@ vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlal_high_lane_s32(a, b, c, d) \ __extension__ \ ({ \ - int32x4_t c_ = (c); \ + int32x2_t c_ = (c); \ int32x4_t b_ = (b); \ int64x2_t a_ = (a); \ int64x2_t result; \ @@ -6763,7 +6763,7 @@ vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlal_high_lane_u16(a, b, c, d) \ __extension__ \ ({ \ - uint16x8_t c_ = (c); \ + uint16x4_t c_ = (c); \ uint16x8_t b_ = (b); \ uint32x4_t a_ = (a); \ uint32x4_t result; \ @@ -6777,7 +6777,7 @@ vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlal_high_lane_u32(a, b, c, d) \ __extension__ \ ({ \ - uint32x4_t c_ = (c); \ + uint32x2_t c_ = (c); \ uint32x4_t b_ = (b); \ uint64x2_t a_ = (a); \ uint64x2_t result; \ @@ -7423,7 +7423,7 @@ vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlsl_high_lane_s16(a, b, c, d) \ __extension__ \ ({ \ - int16x8_t c_ = (c); \ + int16x4_t c_ = (c); \ int16x8_t b_ = (b); \ int32x4_t a_ = (a); \ int32x4_t result; \ @@ -7437,7 +7437,7 @@ vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlsl_high_lane_s32(a, b, c, d) \ __extension__ \ ({ \ - int32x4_t c_ = (c); \ + int32x2_t c_ = (c); \ int32x4_t b_ = (b); \ int64x2_t a_ = (a); \ int64x2_t result; \ @@ -7451,7 +7451,7 @@ vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlsl_high_lane_u16(a, b, c, d) \ __extension__ \ ({ \ - uint16x8_t c_ = (c); \ + uint16x4_t c_ = (c); \ uint16x8_t b_ = (b); \ uint32x4_t a_ = (a); \ uint32x4_t result; \ @@ -7465,7 +7465,7 @@ vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c) #define vmlsl_high_lane_u32(a, b, c, d) \ __extension__ \ ({ \ - uint32x4_t c_ = (c); \ + uint32x2_t c_ = (c); \ uint32x4_t b_ = (b); \ uint64x2_t a_ = (a); \ uint64x2_t result; \