This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix mips subreg handling (PR target/89378)
- From: Jeff Law <law at redhat dot com>
- To: Jakub Jelinek <jakub at redhat dot com>, Matthew Fortune <mfortune at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 19 Mar 2019 08:42:07 -0600
- Subject: Re: [PATCH] Fix mips subreg handling (PR target/89378)
- References: <20190314135222.GX7611@tucnak>
On 3/14/19 7:52 AM, Jakub Jelinek wrote:
> Hi!
>
> On the gcc.dg/vect/pr88598-3.c testcase, gen_vec_extract... is called with
> operands[1] that is already a subreg - (subreg:V4SF (reg:V4SI 201 [ _31 ]) 0)
> and wraps it in another SUBREG, which is invalid in RTL.
>
> In all the following 4 spots I've verified that the operand's mode is some
> 128-bit vector mode and the mode we want to use is another 128-bit vector
> mode, so we are just VCEing the operand to another same sized mode, so we can
> call gen_lowpart to handle everything for us (there are no worries about big
> vs. little endian etc.).
>
> Paul Hua has kindly bootstrapped/regtested this on mips (mentioned in the
> PR), ok for trunk?
>
> 2019-03-14 Jakub Jelinek <jakub@redhat.com>
>
> PR target/89378
> * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
> instead of gen_rtx_SUBREG.
> * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
I thought this had been OK'd, but I don't see it in the tree. So I'll
go ahead and explicitly OK it.
jeff