]> git.ipfire.org Git - thirdparty/gcc.git/commit
vector.md (vec_realign_load<mode>): Generate vperm directly to circumvent subtract...
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Fri, 11 Oct 2013 18:52:07 +0000 (18:52 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Fri, 11 Oct 2013 18:52:07 +0000 (18:52 +0000)
commitf200869abc9e4b4dc6e48425bc3cd22fa1799a67
treeaf7d2f54daecbe920f1c58a12f1883895fd09a75
parent39aeb94e3d9fd7379547e5517c4a12c67f41b862
vector.md (vec_realign_load<mode>): Generate vperm directly to circumvent subtract from splat{31} workaround.

2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
directly to circumvent subtract from splat{31} workaround.
* config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
prototype.
* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
* config/rs6000/altivec.md (define_c_enum "unspec"): Add
UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
(altivec_vperm_<mode>): Convert to define_insn_and_split to
separate big and little endian logic.
(*altivec_vperm_<mode>_internal): New define_insn.
(altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
separate big and little endian logic.
(*altivec_vperm_<mode>_uns_internal): New define_insn.
(vec_permv16qi): Add little endian logic.

From-SVN: r203457
gcc/ChangeLog
gcc/config/rs6000/altivec.md
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/vector.md