altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Wed, 5 Feb 2014 20:07:51 +0000 (20:07 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Wed, 5 Feb 2014 20:07:51 +0000 (20:07 +0000)
commit52a93551afbc508acad7dd315b4ed0fae0845cd2
treec0605282fec4ba93c0565ad148598413fc0cf77a
parent7a62e56652c69f6c95302b06a1812e42041c9ea4
altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.

gcc:

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

* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
gen_altivec_vpkuwum.
(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
BYTES_BIG_ENDIAN.
(altivec_vpks<VI_char>ss): Likewise.
(altivec_vpks<VI_char>us): Likewise.
(altivec_vpku<VI_char>us): Likewise.
(altivec_vpku<VI_char>um): Likewise.
(altivec_vpku<VI_char>um_direct): New (copy of
altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
internal use).
(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
target is little endian and -maltivec=be is not specified.
(*altivec_vupkhs<VU_char>_direct): New (copy of
altivec_vupkhs<VU_char> that always emits vupkhs*, for internal
use).
(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
target is little endian and -maltivec=be is not specified.
(*altivec_vupkls<VU_char>_direct): New (copy of
altivec_vupkls<VU_char> that always emits vupkls*, for internal
use).
(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
little endian and -maltivec=be is not specified.
(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
little endian and -maltivec=be is not specified.

gcc/testsuite:

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

* gcc.dg/vmx/pack.c: New.
* gcc.dg/vmx/pack-be-order.c: New.
* gcc.dg/vmx/unpack.c: New.
* gcc.dg/vmx/unpack-be-order.c: New.

From-SVN: r207520
gcc/ChangeLog
gcc/config/rs6000/altivec.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vmx/pack-be-order.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vmx/pack.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vmx/unpack-be-order.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vmx/unpack.c [new file with mode: 0644]