2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
commit8acb8b119c7e25701dd30d842082703182188e9f
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jun 2014 23:46:23 +0000 (6 23:46 +0000)
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jun 2014 23:46:23 +0000 (6 23:46 +0000)
tree14e569973e05b087364936a876255194d5926dd1
parentb8ec9433e7d1b2d23eb578d6f126b046c2448fec
2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

Back port from trunk
2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/61431
* config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
iterators, VSX_D that handles 64-bit types, and VSX_LE that
handles swapping the two 64-bit double words on little endian
systems.  Include V1TImode and optionally TImode in VSX_LE so that
these types are properly swapped.  Change all of the insns and
splits that do the 64-bit swaps to use VSX_LE.
(vsx_le_perm_load_<mode>): Likewise.
(vsx_le_perm_store_<mode>): Likewise.
(splitters for little endian memory operations): Likewise.
(vsx_xxpermdi2_le_<mode>): Likewise.
(vsx_lxvd2x2_le_<mode>): Likewise.
(vsx_stxvd2x2_le_<mode>): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@211331 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/rs6000/vsx.md