]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000.c (rs6000_expand_vector_init): Use gen_vsx_xxspltw_v4sf_direct instead of...
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Thu, 30 Jan 2014 18:59:55 +0000 (18:59 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Thu, 30 Jan 2014 18:59:55 +0000 (18:59 +0000)
commitbf53d4b89ea5119786ccbb5184083363e27cc22c
tree71b6431cdc43ae3837914a5da1f510e614f92350
parentc965e18748995d2ce9a13395152fd0da295da573
rs6000.c (rs6000_expand_vector_init): Use gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf...

gcc:

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

* gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
remove element index adjustment for endian (now handled in vsx.md
and altivec.md).
(altivec_expand_vec_perm_const): Use
gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
* gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
(vsx_xxspltw_<mode>): Adjust element index for little endian.
* gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
define_expand and a new define_insn *altivec_vspltb_internal;
adjust for -maltivec=be on a little endian target.
(altivec_vspltb_direct): New.
(altivec_vsplth): Divide into a define_expand and a new
define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
little endian target.
(altivec_vsplth_direct): New.
(altivec_vspltw): Divide into a define_expand and a new
define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
little endian target.
(altivec_vspltw_direct): New.
(altivec_vspltsf): Divide into a define_expand and a new
define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
a little endian target.

gcc/testsuite:

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

* gcc.dg/vmx/splat.c: New.
* gcc.dg/vmx/splat-vsx.c: New.
* gcc.dg/vmx/splat-be-order.c: New.
* gcc.dg/vmx/splat-vsx-be-order.c: New.
* gcc.dg/vmx/eg-5.c: Remove special casing for little endian.
* gcc.dg/vmx/sn7153.c: Add special casing for little endian.

From-SVN: r207318
gcc/ChangeLog
gcc/config/rs6000/altivec.md
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/vsx.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vmx/eg-5.c
gcc/testsuite/gcc.dg/vmx/sn7153.c
gcc/testsuite/gcc.dg/vmx/splat-be-order.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vmx/splat-vsx-be-order.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vmx/splat-vsx.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vmx/splat.c [new file with mode: 0644]