On Tue, Mar 8, 2016 at 11:24 AM, Kelvin Nilsen
<kdnil...@linux.vnet.ibm.com> wrote:
>
> This patch adds support for two new Power9 instructions, xxpermr and vpermr,
> providing more efficient vector permutation operations on little-endian
> configurations. These new instructions are described in the Power ISA 3.0
> document.  Selection of the new instructions is conditioned upon
> TARGET_P9_VECTOR and !VECTOR_ELT_ORDER_BIG.
>
> The patch has bootstrapped and tested on powerpc64le-unknown-linux-gnu and
> powerpc64-unknown-linux-gnu with no regressions.  Is this ok for GCC 7 when
> stage 1 opens?

gcc/ChangeLog:

2016-03-07  Kelvin Nilsen  <kel...@gcc.gnu.org>

* config/rs6000/rs6000.c (rs6000_expand_vector_set): If
        !BYTES_BIG_ENDIAN and TARGET_P9_VECTOR, expand using template that
        translates into new xxpermr or vpermr instructions.
(altivec_expand_vec_perm_le): If TARGET_P9_VECTOR, expand using
        template that translates into new xxpermr or vpermr instructions.
* config/rs6000/altivec.md: (UNSPEC_VPERMR): New unspec constant.
        (*altivec_vpermr_<mode>_internal): New insn.

gcc/testsuite/ChangeLog:

2016-03-07  Kelvin Nilsen  <kel...@gcc.gnu.org>

* gcc.target/powerpc/p9-permute.c: Generalize test to run on
        big-endian Power9 in addition to little-endian Power9.
* gcc.target/powerpc/p9-vpermr.c: New test.

This patch is okay when GCC trunk re-opens for new features.

Thanks, David

P.S. In the future, please include the ChangeLog entry in the body of
the message, not a separate attachment.

Reply via email to