This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] rs6000: Fix the shift patterns, and add test


On Wed, Jul 2, 2014 at 5:06 PM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> Firstly, it adds back the split conditions that I accidentally removed.
> Without it the dot insns are never generated, or rather, always split
> back to a separate compare instruction.
>
> Secondly, the shift amount should be SI always, not GPR, or GCC will
> insert a zero-extend at expand time that it cannot get rid of later.

Ugh.

> The test tests whether dot-form instructions are generated for both
> "dot" and "dot2" cases, that is, with just a CC output or also a GPR
> output; for all four basic shifts, with a register amount or an
> immediate amount.  It also tests for superfluous zero-extends.  This
> also tests if combine "simplifies" the rotates to right-rotates, which
> it shouldn't do anymore.
>
> Bootstrapped and tested as usual.  Okay to commit?
>
>
> Segher
>
>
> 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
>
> gcc/
>         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
>         ashr<mode>3): Correct mode of operands[2].
>         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
>         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
>         Correct mode of operands[2].  Fix split condition.
>
> gcc/testsuite/
>         * gcc.target/powerpc/shift-dot.c: New test.

Okay.

Thanks, David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]