rs6000.c (special_handling_values): Add SH_EXTRACT.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Thu, 4 Sep 2014 14:31:34 +0000 (14:31 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Thu, 4 Sep 2014 14:31:34 +0000 (14:31 +0000)
commit6bf5ce8f85c50886913d6f26a248f4c4c1445bd2
treed032c6b31e1debd476e39d7f665dc43cd8604345
parent2b3106ecef35e73229cca4c82b0ccd1fb2225f51
rs6000.c (special_handling_values): Add SH_EXTRACT.

[gcc]

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (special_handling_values): Add
SH_EXTRACT.
(rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
as swappable with special handling SH_EXTRACT.  Remove
UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
optimization.
(adjust_extract): New function.
(handle_special_swappables): Add default to case statement; add
case for SH_EXTRACT that calls adjust_extract.
(dump_swap_insn_table): Handle SH_EXTRACT.

[gcc/testsuite]

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/swaps-p8-13.c: New test.
* gcc.target/powerpc/swaps-p8-14.c: New test.
* gcc.target/powerpc/swaps-p8-15.c: New test.

From-SVN: r214903
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/swaps-p8-13.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/swaps-p8-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/swaps-p8-15.c [new file with mode: 0644]