]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000.c (altivec_expand_vec_perm_le): Generalize for vector types other than V16QImode.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Mon, 3 Feb 2014 01:26:34 +0000 (01:26 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Mon, 3 Feb 2014 01:26:34 +0000 (01:26 +0000)
commit60331d000dba163e490c2c55461f606ebb3baf60
tree088378e522bddf3e0e950b3507891f3e858f48df
parentb80afde960b6ba3f4283f5126e3b51d5bd73408f
rs6000.c (altivec_expand_vec_perm_le): Generalize for vector types other than V16QImode.

gcc:

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
for vector types other than V16QImode.
* config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
define_expand, and call altivec_expand_vec_perm_le when producing
code with little endian element order.
(*altivec_vperm_<mode>_internal): New insn having previous
behavior of altivec_vperm_<mode>.
(altivec_vperm_<mode>_uns): Change to a define_expand, and call
altivec_expand_vec_perm_le when producing code with little endian
element order.
(*altivec_vperm_<mode>_uns_internal): New insn having previous
behavior of altivec_vperm_<mode>_uns.

gcc/testsuite:

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/3b-15.c: Remove special handling for little endian.
* gcc.dg/vmx/perm.c: New.
* gcc.dg/vmx/perm-be-order.c: New.

From-SVN: r207415
gcc/ChangeLog
gcc/config/rs6000/altivec.md
gcc/config/rs6000/rs6000.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vmx/3b-15.c
gcc/testsuite/gcc.dg/vmx/perm-be-order.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vmx/perm.c [new file with mode: 0644]