From patchwork Fri Jan 18 10:25:14 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 213557 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]) by ozlabs.org (Postfix) with SMTP id 4A25B2C007B for ; Fri, 18 Jan 2013 21:25:35 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1359109536; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:Sender:Delivered-To; bh=dzF41Si yqtNQVPagXMgvtYqwuNU=; b=o2nWXFz/+bZayjaGCJwztijgEDmfwTycLv7v3FB 9rEjdJ4rMqitCq6WMR+a+ny/A155cDWGxLPuFNzyNGW5wB+FFH6VwzV3p6G0d0wh MCTMwBTTJngGq/bUdl63lVqkBTHfDdVAcQNWeMwfi6rplKGrJecYwrlW16l1vbGL 9nzo= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:X-MC-Unique:Content-Type:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=saWgD1mZ5GlkhcfZOLRZwYt2FfU85E2gRY2ktWW/Iis3talOiAmlo0vLolLFnZ 4Pt8dOVXm9hpFj45OmJnbG4fmFwmg05hOfh3n7eP9xcySooTH9H2W64w05wNnweb erFKP1xjLGBqM/o4O/nqBqcAhzdCX7P/b4ZEDkX2smkBg=; Received: (qmail 22334 invoked by alias); 18 Jan 2013 10:25:28 -0000 Received: (qmail 22311 invoked by uid 22791); 18 Jan 2013 10:25:26 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 18 Jan 2013 10:25:20 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Fri, 18 Jan 2013 10:25:18 +0000 Received: from [10.1.79.66] ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.0); Fri, 18 Jan 2013 10:25:15 +0000 Message-ID: <50F9230A.40208@arm.com> Date: Fri, 18 Jan 2013 10:25:14 +0000 From: Tejas Belagod User-Agent: Thunderbird 2.0.0.18 (X11/20081120) MIME-Version: 1.0 To: "gcc-patches@gcc.gnu.org" CC: Marcus Shawcroft Subject: [Patch, AArch64, AArch64-4.7] Map scalar types in arm_neon.h to standard types. X-MC-Unique: 113011810251800601 X-IsSubscribed: yes 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 Hi, The attached patch fixes one of arm_neon.h's issues with C++. All scalar types x1_t are mapped to internal __builtin_aarch64_simd_ types. This creates duplicate function name symbols when one attempts overloading a standard type and one of these builtin types that are of the same size. For example, int8x1_t when overloaded with signed char creates a duplicate function name symbol. This patch increases the strictness and maps scalar types x1_t to standard types. This means overloading is not possible, but that will not make a difference as we can now define it this way and needless to say it was broken till now anyway. Tested for aarch64-none-elf. OK for trunk and aarch64-4.7-branch? Thanks, Tejas Belagod ARM. Changelog: 2013-01-18 Tejas Belagod gcc/ * config/aarch64/arm_neon.h: Map scalar types to standard types. diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 5a72029..50e0a7b 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -35,11 +35,11 @@ typedef __builtin_aarch64_simd_hi int16x4_t __attribute__ ((__vector_size__ (8))); typedef __builtin_aarch64_simd_si int32x2_t __attribute__ ((__vector_size__ (8))); -typedef __builtin_aarch64_simd_di int64x1_t; -typedef __builtin_aarch64_simd_si int32x1_t; -typedef __builtin_aarch64_simd_hi int16x1_t; -typedef __builtin_aarch64_simd_qi int8x1_t; -typedef __builtin_aarch64_simd_df float64x1_t; +typedef int64_t int64x1_t; +typedef int32_t int32x1_t; +typedef int16_t int16x1_t; +typedef int8_t int8x1_t; +typedef double float64x1_t; typedef __builtin_aarch64_simd_sf float32x2_t __attribute__ ((__vector_size__ (8))); typedef __builtin_aarch64_simd_poly8 poly8x8_t @@ -52,10 +52,10 @@ typedef __builtin_aarch64_simd_uhi uint16x4_t __attribute__ ((__vector_size__ (8))); typedef __builtin_aarch64_simd_usi uint32x2_t __attribute__ ((__vector_size__ (8))); -typedef __builtin_aarch64_simd_udi uint64x1_t; -typedef __builtin_aarch64_simd_usi uint32x1_t; -typedef __builtin_aarch64_simd_uhi uint16x1_t; -typedef __builtin_aarch64_simd_uqi uint8x1_t; +typedef uint64_t uint64x1_t; +typedef uint32_t uint32x1_t; +typedef uint16_t uint16x1_t; +typedef uint8_t uint8x1_t; typedef __builtin_aarch64_simd_qi int8x16_t __attribute__ ((__vector_size__ (16))); typedef __builtin_aarch64_simd_hi int16x8_t