re PR target/71201 (PowerPC XXPERM instruction fails on ISA 3.0 system.)
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Mon, 23 May 2016 23:42:52 +0000 (23:42 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Mon, 23 May 2016 23:42:52 +0000 (23:42 +0000)
commitfe3f3340416fc6f2a197f2c057de4094f5974d9c
treea3ec62ae71b9a4978798fa14aaae85b3534d729c
parent290279c4380abb665ae8c0c798225e6efcecdf01
re PR target/71201 (PowerPC XXPERM instruction fails on ISA 3.0 system.)

[gcc]
2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71201
* config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
ISA 3.0 xxperm fusion alternative.
(altivec_vperm_v8hiv16qi): Likewise.
(altivec_vperm_<mode>_uns_internal): Likewise.
(vperm_v8hiv4si): Likewise.
(vperm_v16qiv8hi): Likewise.

[gcc/testsuite]
2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
    Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/p9-permute.c: Run test on big endian as well
as little endian.

[gcc]
2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
    Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
vpermr/xxpermr on ISA 3.0.
(altivec_expand_vec_perm_le): Likewise.
* config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
(altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
ISA 3.0.

Co-Authored-By: Kelvin Nilsen <kelvin@gcc.gnu.org>
From-SVN: r236617
gcc/ChangeLog
gcc/config/rs6000/altivec.md
gcc/config/rs6000/rs6000.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/p9-permute.c