From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9752 invoked by alias); 4 Aug 2010 04:18:27 -0000 Received: (qmail 9735 invoked by uid 22791); 4 Aug 2010 04:18:26 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 04 Aug 2010 04:18:21 +0000 Received: (qmail 2233 invoked from network); 4 Aug 2010 04:18:19 -0000 Received: from unknown (HELO qiyaows) (yao@127.0.0.2) by mail.codesourcery.com with ESMTPA; 4 Aug 2010 04:18:19 -0000 Date: Wed, 04 Aug 2010 04:18:00 -0000 From: Yao Qi To: gcc-patches@gcc.gnu.org Subject: Re: [PATCH, ARM] Fix PR45094 Message-ID: <20100804041811.GA18664@qiyaows> References: <20100801083614.GA2569@qiyaows> <20100801145827.GB2569@qiyaows> <20100802003814.GA19224@caradoc.them.org> <20100803132852.GA15793@qiyaows> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="KsGdsel6WgEHnImy" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-IsSubscribed: yes 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 X-SW-Source: 2010-08/txt/msg00249.txt.bz2 --KsGdsel6WgEHnImy Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-length: 1166 On Wed, Aug 04, 2010 at 12:58:47AM +0100, Ramana Radhakrishnan wrote: > On Tue, Aug 3, 2010 at 2:28 PM, Yao Qi wrote: > > On Sun, Aug 01, 2010 at 08:38:18PM -0400, Daniel Jacobowitz wrote: > >> On Sun, Aug 01, 2010 at 10:58:29PM +0800, Yao Qi wrote: > >> > Oops...  Correct typo in new patch. > >> > >> This suggests there should be an execute test.  When possible, those > >> are better. > > > > Revise test case to an 'execute test', rather than a 'compile test'. > > Bootstrapped and regression tested on arm-unknown-linux-gnueabi.  No > > regression.  OK to commit? > > No - this test is still not ok. It is not necessary that all > arm-linux-gnueabi targets have Neon. Think about the Tegra2 where > there is no Neon unit where this test will fail. Thus if you really > need the neon options (out of curiosity why?) please add the following > to the test. > > /* { dg-require-effective-target arm_neon_hw } */ Add /* { dg-require-effective-target arm_neon_hw } */ into the test as you suggested here. Re-create patch against mainline trunk, and tested. OK to apply? -- Yao Qi CodeSourcery yao@codesourcery.com (650) 331-3385 x739 --KsGdsel6WgEHnImy Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="pr45094.patch" Content-length: 1680 gcc/ PR target/45094 * config/arm/arm.c (output_move_double): Fix typo generating instructions ('ldr'->'str'). gcc/testsuite/ PR target/45094 * gcc.target/arm/pr45094.c: New test. Index: gcc/config/arm/arm.c =================================================================== --- gcc/config/arm/arm.c (revision 162853) +++ gcc/config/arm/arm.c (working copy) @@ -12836,13 +12836,13 @@ { if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY) { - output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops); - output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops); + output_asm_insn ("str%?\t%0, [%1, %2]!", otherops); + output_asm_insn ("str%?\t%H0, [%1, #4]", otherops); } else { - output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops); - output_asm_insn ("ldr%?\t%0, [%1], %2", otherops); + output_asm_insn ("str%?\t%H0, [%1, #4]", otherops); + output_asm_insn ("str%?\t%0, [%1], %2", otherops); } } else if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY) Index: gcc/testsuite/gcc.target/arm/pr45094.c =================================================================== --- gcc/testsuite/gcc.target/arm/pr45094.c (revision 0) +++ gcc/testsuite/gcc.target/arm/pr45094.c (revision 0) @@ -0,0 +1,27 @@ +/* { dg-do run } */ +/* { dg-require-effective-target arm_neon_hw } */ +/* { dg-options "-O2 -mcpu=cortex-a8" } */ +/* { dg-add-options arm_neon } */ + +#include + +long long buffer[32]; + +void __attribute__((noinline)) f(long long *p, int n) +{ + while (--n >= 0) + { + *p = 1; + p += 32; + } +} + +int main(void) +{ + f(buffer, 1); + + if (!buffer[0]) + abort(); + + return 0; +} --KsGdsel6WgEHnImy--