From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 515 invoked by alias); 7 Jun 2013 13:23:35 -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 503 invoked by uid 89); 7 Jun 2013 13:23:34 -0000 X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_DNSWL_LOW,SPF_PASS,TW_QE autolearn=ham version=3.3.1 Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 07 Jun 2013 13:23:32 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Fri, 07 Jun 2013 14:23:30 +0100 Received: from [10.1.208.33] ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.0); Fri, 7 Jun 2013 14:23:27 +0100 Message-ID: <51B1DECF.10804@arm.com> Date: Fri, 07 Jun 2013 13:23:00 -0000 From: Richard Earnshaw User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 To: Kyrylo Tkachov CC: "gcc-patches@gcc.gnu.org" , Ramana Radhakrishnan Subject: Re: [PATCH][ARM] PR56315 Improve codegen for DImode immediates - XOR References: <028a01ce637f$57d84230$0788c690$@tkachov@arm.com> <028b01ce637f$8f5ee380$ae1caa80$@tkachov@arm.com> In-Reply-To: <028b01ce637f$8f5ee380$ae1caa80$@tkachov@arm.com> X-MC-Unique: 113060714233003001 Content-Type: text/plain; charset=WINDOWS-1252; format=flowed Content-Transfer-Encoding: quoted-printable X-SW-Source: 2013-06/txt/msg00398.txt.bz2 On 07/06/13 14:04, Kyrylo Tkachov wrote: > Oops, once again with patch attached... > > gcc/ > 2013-06-07 Kyrylo Tkachov > > PR target/56315 > * config/arm/arm.md (*xordi3_insn): Change to insn_and_split. > (xordi3): Change operand 2 constraint to arm_xordi_operand. > * config/arm/constraints.md (Dg): New constraint. > * config/arm/neon.md (xordi3_neon): Remove. > (neon_veor): Generate xordi3 instead of xordi3_neon. > * config/arm/predicates.md (arm_xordi_operand): New predicate. > > > gcc/testsuite/ > 2013-06-07 Kyrylo Tkachov > > PR target/56315 > * gcc.target/arm/xordi3-opt.c: New test. > > >> -----Original Message----- >> From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches- >> owner@gcc.gnu.org] On Behalf Of Kyrylo Tkachov >> Sent: 07 June 2013 14:03 >> To: gcc-patches@gcc.gnu.org >> Cc: Ramana Radhakrishnan; Richard Earnshaw >> Subject: [PATCH][ARM] PR56315 Improve codegen for DImode immediates >> - XOR >> >> Hi all, >> >> In a similar vein to >> http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01838.html this patch >> lets >> us use the immediate forms of the eor instruction when dealing with >> 64-bit constants. >> The insn is changed into an insn_and_split and merged with the NEON >> version. A new constraint is introduced to make sure the pattern >> accepts >> the correct range of immediates. >> >> Now for code: >> unsigned long long xor64 (unsigned long long input) >> { >> return input ^ 0x200000004ULL; >> } >> >> we generate: >> eor r0, r0, #4 >> eor r1, r1, #2 >> >> without any mov immediates. >> >> Regtested arm-none-eabi on qemu with and without -mthumb. >> >> Ok for trunk? >> >> Thanks, >> Kyrill >> >> gcc/ >> 2013-06-07 Kyrylo Tkachov >> >> PR target/56315 >> * config/arm/arm.md (*xordi3_insn): Change to insn_and_split. >> (xordi3): Change operand 2 constraint to arm_xordi_operand. >> * config/arm/constraints.md (Dg): New constraint. >> * config/arm/neon.md (xordi3_neon): Remove. >> (neon_veor): Generate xordi3 instead of xordi3_neon. >> * config/arm/predicates.md (arm_xordi_operand): New >> predicate. >> >> >> gcc/testsuite/ >> 2013-06-07 Kyrylo Tkachov >> >> PR target/56315 >> * gcc.target/arm/xordi3-opt.c: New test. >> OK. R.