This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 2/4] rs6000: Merge and improve highpart and widening muls
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Segher Boessenkool <segher at kernel dot crashing dot org>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 1 Sep 2014 20:30:35 -0400
- Subject: Re: [PATCH 2/4] rs6000: Merge and improve highpart and widening muls
- Authentication-results: sourceware.org; auth=none
- References: <ad1f704098082bb2b52c2ff647cf9cda72995aa3 dot 1409581755 dot git dot segher at kernel dot crashing dot org> <4787074296dde2e3c21416541f78ee475c588df6 dot 1409581755 dot git dot segher at kernel dot crashing dot org>
On Mon, Sep 1, 2014 at 3:49 PM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> This is a little more complex. The highpart muls generate a "truncate
> lshiftrt" pattern that is not canonical when widening to two registers,
> so this doesn't optimise well with combine. This patch changes it to use
> the canonical subreg patterns instead, which means we need separate patterns
> for LE mode. Oh well.
>
> Tested as usual. This regresses gcc.dg/sms-8.c with -m32: SMS now _does_
> succeed, from my shallow investigation because there now are subregs and
> SMS explicitly looks for that. I didn't look further because other SMS
> tests are failing (without the patch) as well.
>
> Is this okay to apply?
>
>
> Segher
>
>
> 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
>
> gcc/
> * config/rs6000/rs6000.md (any_extend): New code iterator.
> (u, su): New code attributes.
> (dmode, DMODE): New mode attributes.
> (<su>mul<mode>3_highpart): New.
> (*<su>mul<mode>3_highpart): New.
> (<su>mulsi3_highpart_le): New.
> (<su>muldi3_highpart_le): New.
> (<su>mulsi3_highpart_64): New.
> (<u>mul<mode><dmode>3): New.
> (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
> splitters): Delete.
> (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
> splitters): Delete.
Okay.
Thanks, David