On Thu, Sep 4, 2014 at 12:28 AM, Bill Schmidt
<wschm...@linux.vnet.ibm.com> wrote:
> Hi,
>
> This patch adds more special handling to analyze_swaps to allow us to
> improve more computations.  Previously I had disallowed VEC_SELECT in
> all cases.  This is now changed to allow a select of a single lane,
> either for an extract operation or for a splat operation.  If a
> computation containing such operations is optimized, the selected lane
> is changed to count from the other end of the vector.  Several new tests
> are added to check these opportunities are now exploited.
>
> Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
> regressions.  Is this ok for trunk?
>
> Thanks,
> Bill
>
>
> [gcc]
>
> 2014-09-03  Bill Schmidt  <wschm...@linux.vnet.ibm.com>
>
>         * config/rs6000/rs6000.c (special_handling_values): Add
>         SH_EXTRACT.
>         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
>         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
>         as swappable with special handling SH_EXTRACT.  Remove
>         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
>         optimization.
>         (adjust_extract): New function.
>         (handle_special_swappables): Add default to case statement; add
>         case for SH_EXTRACT that calls adjust_extract.
>         (dump_swap_insn_table): Handle SH_EXTRACT.
>
> [gcc/testsuite]
>
> 2014-09-03  Bill Schmidt  <wschm...@linux.vnet.ibm.com>
>
>         * gcc.target/powerpc/swaps-p8-13.c: New test.
>         * gcc.target/powerpc/swaps-p8-14.c: New test.
>         * gcc.target/powerpc/swaps-p8-15.c: New test.

Okay.

Thanks, David

Reply via email to