https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81593
--- Comment #2 from Michael Meissner <meissner at gcc dot gnu.org> --- Author: meissner Date: Mon Aug 7 23:51:27 2017 New Revision: 250936 URL: https://gcc.gnu.org/viewcvs?rev=250936&root=gcc&view=rev Log: [gcc] 2017-08-07 Michael Meissner <meiss...@linux.vnet.ibm.com> PR target/81593 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup constraints since the -mupper-regs-* switches have been eliminated. (vsx_concat_<mode>_1): New combiner insns to recognize inserting into a vector from a double word element that was extracted from another vector, and eliminate extra XXPERMDI instructions. (vsx_concat_<mode>_2): Likewise. (vsx_concat_<mode>_3): Likewise. (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector concat to allow optimizing inserts from previous extracts. [gcc/testsuite] 2017-08-07 Michael Meissner <meiss...@linux.vnet.ibm.com> PR target/81593 * gcc.target/powerpc/vec-setup.h: New tests to test various combinations of setting up vectors of 2 double word elements. * gcc.target/powerpc/vec-setup-long.c: Likewise. * gcc.target/powerpc/vec-setup-double.c: Likewise. * gcc.target/powerpc/vec-setup-be-long.c: Likewise. * gcc.target/powerpc/vec-setup-be-double.c: Likewise. * gcc.target/powerpc/vsx-extract-6.c: New tests for optimzing vector inserts from vector extracts. * gcc.target/powerpc/vsx-extract-7.c: Likewise. Added: trunk/gcc/testsuite/gcc.target/powerpc/vec-setup-be-double.c trunk/gcc/testsuite/gcc.target/powerpc/vec-setup-be-long.c trunk/gcc/testsuite/gcc.target/powerpc/vec-setup-double.c trunk/gcc/testsuite/gcc.target/powerpc/vec-setup-long.c trunk/gcc/testsuite/gcc.target/powerpc/vec-setup.h trunk/gcc/testsuite/gcc.target/powerpc/vsx-extract-6.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-extract-7.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/vsx.md trunk/gcc/testsuite/ChangeLog