rs6000.c (rs6000_emit_le_vsx_move): Verify that this is never called when lxvx/stxvx...
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Mon, 28 Dec 2015 16:37:03 +0000 (16:37 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Mon, 28 Dec 2015 16:37:03 +0000 (16:37 +0000)
commit5d57fdc1097999f0bdd3958c413b25560be196c4
tree7da6c3837fe4e7c831f895223b0ac2295ff1b741
parenta02d84b6f82e3be7241fb0643ca5f46476af2506
rs6000.c (rs6000_emit_le_vsx_move): Verify that this is never called when lxvx/stxvx are available.

[gcc]

2015-12-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Verify that
this is never called when lxvx/stxvx are available.
(pass_analyze_swaps::gate): Don't perform swap optimization when
lxvx/stxvx are available.
* config/rs6000/vector.md (mov<mode>): Don't call
rs6000_emit_le_vsx_move when lxvx/stxvx are available.
* config/rs6000/vsx.md (*p9_vecload_<mode>): New define_insn.
(*p9_vecstore_<mode>): Likewise.
(*vsx_le_perm_load_<mode>:VSX_LE): Disable when lxvx/stxvx are
available.
(*vsx_le_perm_load_<mode>:VSX_W): Likewise.
(*vsx_le_perm_load_v8hi): Likewise.
(*vsx_le_perm_load_v16qi): Likewise.
(*vsx_le_perm_store_<mode>:VSX_LE): Likewise.
([related define_splits]): Likewise.
(*vsx_le_perm_store_<mode>:VSX_W): Likewise.
([related define_splits]): Likewise.
(*vsx_le_perm_store_v8hi): Likewise.
([related define_splits]): Likewise.
(*vsx_le_perm_store_v16qi): Likewise.
([related define_splits]): Likewise.
(*vsx_lxvd2x2_le_<mode>): Likewise.
(*vsx_lxvd2x4_le_<mode>): Likewise.
(*vsx_lxvd2x8_le_V8HI): Likewise.
(*vsx_lvxd2x16_le_V16QI): Likewise.
(*vsx_stxvd2x2_le_<mode>): Likewise.
(*vsx_stxvd2x4_le_<mode>): Likewise.
(*vsx_stxvd2x8_le_V8HI): Likewise.
(*vsx_stxvdx16_le_V16QI): Likewise.
([define_peepholes for vector load fusion]): Likewise.

[gcc/testsuite]

2015-12-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/p9-lxvx-stxvx-1.c: New.
* gcc.target/powerpc/p9-lxvx-stxvx-2.c: New.

From-SVN: r231974
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/vector.md
gcc/config/rs6000/vsx.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-2.c [new file with mode: 0644]