From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28550 invoked by alias); 15 May 2017 08:50:02 -0000 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 Received: (qmail 27846 invoked by uid 89); 15 May 2017 08:50:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=201609, 2016-09 X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 15 May 2017 08:49:59 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4A3EF80D; Mon, 15 May 2017 01:50:01 -0700 (PDT) Received: from [10.2.207.77] (e100706-lin.cambridge.arm.com [10.2.207.77]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0E1A33F23B; Mon, 15 May 2017 01:49:59 -0700 (PDT) Message-ID: <59196BB6.30104@foss.arm.com> Date: Mon, 15 May 2017 08:59:00 -0000 From: Kyrill Tkachov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Tamar Christina , Matthew Wahab , gcc-patches CC: nd , "nickc@redhat.com" , Richard Earnshaw , Ramana Radhakrishnan Subject: Re: [ARM] Enable FP16 vector arithmetic operations. References: <57E543F8.4060605@foss.arm.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2017-05/txt/msg01154.txt.bz2 Hi Tamar, On 02/05/17 15:46, Tamar Christina wrote: > Hi All, > > I'm taking this one over from Matthew, I think it slipped through the cracks before. > > Since it still applies cleanly on trunk I'm just pinging it. > > Ok for trunk? > Sorry for missing this. For the record you are referring to the patch at: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg01700.html This is ok and in line with what we do for the f32 intrinsics. My only concern was that we can do this only if __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined from the architecture/fpu level, but these intrinsics are already gated on that in arm_neon.h. This is ok for trunk if a bootstrap and test run on arm-none-linux-gnueabihf with current trunk shows no issues. Thanks, Kyrill > Tamar > ________________________________________ > From: gcc-patches-owner@gcc.gnu.org on behalf of Matthew Wahab > Sent: Friday, September 23, 2016 4:02 PM > To: gcc-patches > Subject: [ARM] Enable FP16 vector arithmetic operations. > > Hello, > > Support for the ARMv8.2-A FP16 NEON arithmetic instructions was added > using non-standard names for the instruction patterns. This was needed > because the NEON floating point semantics meant that their use by the > compiler for HFmode arithmetic operations needed to be restricted. This > follows the implementation for 32-bit NEON intructions. > > As with the 32-bit instructions, the restriction on the HFmode > operation can be lifted when -funsafe-math-optimizations is > enabled. This patch does that, defining the standard pattern names > addhf3, subhf3, mulhf3 and fmahf3. > > This patch also updates the NEON intrinsics to use the arithmetic > operations when -ffast-math is enabled. This is to make keep the 16-bit > support consistent with the 32-bit supportd. It is needed so that code > using the f16 intrinsics are subject to the same optimizations as code > using the f32 intrinsics would be. > > Tested for arm-none-linux-gnueabihf with native bootstrap and make check > on ARMv8-A and for arm-none-eabi and armeb-none-eabi with cross-compiled > make check on an ARMv8.2-A emulator. > > Ok for trunk? > Matthew > > gcc/ > 2016-09-23 Matthew Wahab > > * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic > operations in fast-math mode. > (vaddq_f16): Likewise. > (vmul_f16): Likewise. > (vmulq_f16): Likewise. > (vsub_f16): Likewise. > (vsubq_f16): Likewise. > * config/arm/neon.md (add3): New. > (sub3): New. > (fma:3): New. Also remove outdated comment. > (mul3): New. > > testsuite/ > 2016-09-23 Matthew Wahab > > * gcc.target/arm/armv8_2-fp16-arith-1.c: Expand comment. Update > expected output of vadd, vsub and vmul instructions. > * gcc.target/arm/armv8_2-fp16-arith-2.c: New. > * gcc.target/arm/armv8_2-fp16-neon-2.c: New. > * gcc.target/arm/armv8_2-fp16-neon-3.c: New.