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.