From patchwork Mon Dec 5 10:37:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tamar Christina X-Patchwork-Id: 86539 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp1405107qgi; Mon, 5 Dec 2016 02:38:15 -0800 (PST) X-Received: by 10.98.211.135 with SMTP id z7mr57056220pfk.109.1480934294996; Mon, 05 Dec 2016 02:38:14 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id c74si14158070pfk.272.2016.12.05.02.38.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Dec 2016 02:38:14 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-443451-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-443451-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-443451-patch=linaro.org@gcc.gnu.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:content-type:mime-version; q=dns; s=default; b=ugIvTQ9kIi7KkD/ZicfFNnid++5FbxTdW5/FFuro48JF1qO3/M vZ8LzaD4VvRq10YiNh+J/H29eYLuWbyASOcsvZREsTADHDsRIe6MVANigzHTdWds iJTgR+7y8GA30fDPwDWwHodFuFxyawbKYjKaLXimc/qFBXkGzNtKqKtxE= 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:from :to:cc:subject:date:message-id:content-type:mime-version; s= default; bh=jU3/0Rhg7hNM+wC492fPjVXekwU=; b=HbfIGP06vJs1ozRHGwNP +e6BLZ12uP3L+K553VK4jeJpueaeUOrtx6hMUmVrgvXKCu2dzzrLXPY6nx5n2yBt 01KmDhG8ub0AsLYaOcFSN4MYt2/mK8hKOJtXLks6oflZLxxbbbyBYj6c1rsyV9Bb 0wCg/uBRuOic8vQWlKjzD5A= Received: (qmail 123425 invoked by alias); 5 Dec 2016 10:37:59 -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 123407 invoked by uid 89); 5 Dec 2016 10:37:55 -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_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=H*RU:15.01.0761.016, Hx-exchange-antispam-report-cfa-test:102415395, Hx-spam-relays-external:15.01.0761.016, H*r:15.01.0761.016 X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0069.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.69) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 05 Dec 2016 10:37:45 +0000 Received: from VI1PR0801MB2031.eurprd08.prod.outlook.com (10.173.74.140) by VI1PR0801MB2094.eurprd08.prod.outlook.com (10.173.75.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.747.13; Mon, 5 Dec 2016 10:37:42 +0000 Received: from VI1PR0801MB2031.eurprd08.prod.outlook.com ([10.173.74.140]) by VI1PR0801MB2031.eurprd08.prod.outlook.com ([10.173.74.140]) with mapi id 15.01.0761.016; Mon, 5 Dec 2016 10:37:41 +0000 From: Tamar Christina To: Christophe Lyon , James Greenhalgh , GCC Patches , "Richard Earnshaw" , Marcus Shawcroft CC: nd Subject: [AArch64] [PATCH] Fix failing poly tests AArch64 Date: Mon, 5 Dec 2016 10:37:41 +0000 Message-ID: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Tamar.Christina@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-office365-filtering-correlation-id: 7d93b0d2-0e87-4b5d-185f-08d41cfabdd1 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:VI1PR0801MB2094; x-microsoft-exchange-diagnostics: 1; VI1PR0801MB2094; 7:FfUm00fxZC976oPbyBixg/01II0IxeRMJ08cYQxxkO7LWg3rXx4SiWLfDROLULzc1B+gTCpcvuepEY4mQEMgxxeGXnsvbR+aTwjmtPxtyT7VVAx3PQjsqvTNyP7lOyvTqk7ZTZgf3FW6Tt5Flb7gG3no1sSm5wWkUkGnqiaJtzKsx0KuCqboV0j2vGDTAERmgky6KHVg1D9OUJw0GOGid/zWKNhFoo4Rpoq6/1KgoqKSg9AnYbkttelqpWdHGT7OibnXqUmx+v973exxjOLeb8KlrT1j5e3CynzU373zwRe2YpmjLjXpLiC+y8DnFOPUgf3l1FU+XRRZrUT9HS1SgFAeYAoyRU/FjvXBfooiJrBDHd1/juDI5B8oXhk4kPsj9d6D8t+0YvQuPujKLixN20tVtu4FBTEfmuMzvJsWqIObRo8uTOUd/zfL1eUZqadLs9q1rTSTz9io3VChgKxYLA== nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(102415395)(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148); SRVR:VI1PR0801MB2094; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0801MB2094; x-forefront-prvs: 0147E151B5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(189002)(377424004)(53754006)(199003)(6636002)(33656002)(77096006)(99936001)(102836003)(101416001)(6506006)(6116002)(8936002)(97736004)(68736007)(8676002)(86362001)(39450400002)(2900100001)(81166006)(5001770100001)(189998001)(38730400001)(39410400001)(3280700002)(39850400001)(81156014)(122556002)(106116001)(4326007)(9686002)(76576001)(105586002)(3660700001)(2906002)(92566002)(7696004)(3846002)(7846002)(305945005)(7736002)(39840400001)(66066001)(106356001)(5660300001)(50986999)(54356999)(74316002)(39860400001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0801MB2094; H:VI1PR0801MB2031.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2016 10:37:41.3547 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB2094 X-IsSubscribed: yes Hi All, This patch fixes test failures on aarch64-none-linux-gnu. Some vreinterpret intrinsics which are required for some of the tests to run were missing. Bootstrapped and reg tested on aarch64-none-linux-gnu. Ok for trunk? gcc/ 2016-12-01 Tamar Christina * gcc/config/aarch64/arm_neon.h (vreinterpretq_p8_p128, vreinterpretq_p16_p128): Added. (vreinterpret_p64_p16, vreinterpretq_p64_p128): Likewise. (vreinterpretq_p64_p16, vreinterpretq_p128_p8): Likewise. (vreinterpretq_p128_p16, vreinterpretq_p128_f16): Likewise. (vreinterpretq_p128_f32, vreinterpretq_p128_p64): Likewise. (vreinterpretq_p128_s64, vreinterpretq_p128_u64): Likewise. (vreinterpretq_p128_s8, vreinterpretq_p128_s16): Likewise. (vreinterpretq_p128_s32, vreinterpretq_p128_u8): Likewise. (vreinterpretq_p128_u16, vreinterpretq_p128_u32): Likewise. (vreinterpretq_f16_p128, vreinterpretq_f32_p128): Likewise. (vreinterpretq_s64_p128, vreinterpretq_u64_p128): Likewise. (vreinterpretq_s8_p128, vreinterpretq_s16_p128): Likewise. (vreinterpretq_s32_p128, vreinterpretq_u8_p128): Likewise. (vreinterpretq_u16_p128, vreinterpretq_u32_p128): Likewise. diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 7d4d2a25ab80ae2daa9c8f8f004b07d2a64111ad..b8466440d824f317b745d4b2c0e2df9bcac8c061 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -3506,6 +3506,13 @@ vreinterpretq_p8_p64 (poly64x2_t __a) return (poly8x16_t) __a; } +__extension__ extern __inline poly8x16_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p8_p128 (poly128_t __a) +{ + return (poly8x16_t)__a; +} + __extension__ extern __inline poly16x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_p16_f16 (float16x4_t __a) @@ -3688,6 +3695,13 @@ vreinterpretq_p16_p64 (poly64x2_t __a) return (poly16x8_t) __a; } +__extension__ extern __inline poly16x8_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p16_p128 (poly128_t __a) +{ + return (poly16x8_t)__a; +} + __extension__ extern __inline poly64x1_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_p64_f16 (float16x4_t __a) @@ -3772,6 +3786,13 @@ vreinterpret_p64_p8 (poly8x8_t __a) return (poly64x1_t) __a; } +__extension__ extern __inline poly64x1_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpret_p64_p16 (poly16x4_t __a) +{ + return (poly64x1_t)__a; +} + __extension__ extern __inline poly64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpretq_p64_f64 (float64x2_t __a) @@ -3823,6 +3844,13 @@ vreinterpretq_p64_f32 (float32x4_t __a) __extension__ extern __inline poly64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p64_p128 (poly128_t __a) +{ + return (poly64x2_t)__a; +} + +__extension__ extern __inline poly64x2_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpretq_p64_u8 (uint8x16_t __a) { return (poly64x2_t) __a; @@ -3836,6 +3864,13 @@ vreinterpretq_p64_u16 (uint16x8_t __a) } __extension__ extern __inline poly64x2_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p64_p16 (poly16x8_t __a) +{ + return (poly64x2_t)__a; +} + +__extension__ extern __inline poly64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpretq_p64_u32 (uint32x4_t __a) { @@ -3856,6 +3891,97 @@ vreinterpretq_p64_p8 (poly8x16_t __a) return (poly64x2_t) __a; } +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_p8 (poly8x16_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_p16 (poly16x8_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_f16 (float16x8_t __a) +{ + return (poly128_t) __a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_f32 (float32x4_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_p64 (poly64x2_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_s64 (int64x2_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_u64 (uint64x2_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_s8 (int8x16_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_s16 (int16x8_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_s32 (int32x4_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_u8 (uint8x16_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_u16 (uint16x8_t __a) +{ + return (poly128_t)__a; +} + +__extension__ extern __inline poly128_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_p128_u32 (uint32x4_t __a) +{ + return (poly128_t)__a; +} + __extension__ extern __inline float16x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_f16_f64 (float64x1_t __a) @@ -4025,6 +4151,13 @@ vreinterpretq_f16_p8 (poly8x16_t __a) } __extension__ extern __inline float16x8_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_f16_p128 (poly128_t __a) +{ + return (float16x8_t) __a; +} + +__extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpretq_f16_p16 (poly16x8_t __a) { @@ -4220,6 +4353,14 @@ vreinterpretq_f32_p64 (poly64x2_t __a) return (float32x4_t) __a; } +__extension__ extern __inline float32x4_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_f32_p128 (poly128_t __a) +{ + return (float32x4_t)__a; +} + + __extension__ extern __inline float64x1_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_f64_f16 (float16x4_t __a) @@ -4584,6 +4725,13 @@ vreinterpretq_s64_p64 (poly64x2_t __a) return (int64x2_t) __a; } +__extension__ extern __inline int64x2_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_s64_p128 (poly128_t __a) +{ + return (int64x2_t)__a; +} + __extension__ extern __inline uint64x1_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_u64_f16 (float16x4_t __a) @@ -4766,6 +4914,13 @@ vreinterpretq_u64_p64 (poly64x2_t __a) return (uint64x2_t) __a; } +__extension__ extern __inline uint64x2_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_u64_p128 (poly128_t __a) +{ + return (uint64x2_t)__a; +} + __extension__ extern __inline int8x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_s8_f16 (float16x4_t __a) @@ -4948,6 +5103,13 @@ vreinterpretq_s8_p64 (poly64x2_t __a) return (int8x16_t) __a; } +__extension__ extern __inline int8x16_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_s8_p128 (poly128_t __a) +{ + return (int8x16_t)__a; +} + __extension__ extern __inline int16x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_s16_f16 (float16x4_t __a) @@ -5130,6 +5292,13 @@ vreinterpretq_s16_p64 (poly64x2_t __a) return (int16x8_t) __a; } +__extension__ extern __inline int16x8_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_s16_p128 (poly128_t __a) +{ + return (int16x8_t)__a; +} + __extension__ extern __inline int32x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_s32_f16 (float16x4_t __a) @@ -5312,6 +5481,13 @@ vreinterpretq_s32_p64 (poly64x2_t __a) return (int32x4_t) __a; } +__extension__ extern __inline int32x4_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_s32_p128 (poly128_t __a) +{ + return (int32x4_t)__a; +} + __extension__ extern __inline uint8x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_u8_f16 (float16x4_t __a) @@ -5494,6 +5670,13 @@ vreinterpretq_u8_p64 (poly64x2_t __a) return (uint8x16_t) __a; } +__extension__ extern __inline uint8x16_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_u8_p128 (poly128_t __a) +{ + return (uint8x16_t)__a; +} + __extension__ extern __inline uint16x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_u16_f16 (float16x4_t __a) @@ -5676,6 +5859,13 @@ vreinterpretq_u16_p64 (poly64x2_t __a) return (uint16x8_t) __a; } +__extension__ extern __inline uint16x8_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_u16_p128 (poly128_t __a) +{ + return (uint16x8_t)__a; +} + __extension__ extern __inline uint32x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vreinterpret_u32_f16 (float16x4_t __a) @@ -5858,6 +6048,13 @@ vreinterpretq_u32_p64 (poly64x2_t __a) return (uint32x4_t) __a; } +__extension__ extern __inline uint32x4_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +vreinterpretq_u32_p128 (poly128_t __a) +{ + return (uint32x4_t)__a; +} + /* vset_lane */ __extension__ extern __inline float16x4_t