This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix ARM neon vashr<mode>3 and vlshr<mode>3 expanders (PR target/52375)
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 27 Feb 2012 15:27:42 +0000
- Subject: Re: [PATCH] Fix ARM neon vashr<mode>3 and vlshr<mode>3 expanders (PR target/52375)
- References: <20120227151201.GR18768@tyan-ft48-01.lab.bos.redhat.com>
On 27/02/12 15:12, Jakub Jelinek wrote:
> We ICE shortly after expansion on this testcase, because
> vlshrv4si3 expander is called with a SUBREG as operands,
> but we were testing just for REG_P, and in the other branch
> we assume that it is an immediate. But there is no right shift
> with register shift count.
> Fixed thusly, additionally moved the neg initialization down into
> the scope in which it is used to avoid creating a pseudo needlessly.
> Ok for trunk?
> 2012-02-27 Jakub Jelinek <firstname.lastname@example.org>
> PR target/52375
> * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
> s_register_operand in the test instead of REG_P. Don't call
> gen_reg_rtx if it won't be used.
> * gcc.target/arm/pr52375.c: New test.
> * gcc.c-torture/compile/pr52375.c: New test.