rs6000.c (special_handling_values): Add SH_SPLAT.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Mon, 8 Sep 2014 18:40:56 +0000 (18:40 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Mon, 8 Sep 2014 18:40:56 +0000 (18:40 +0000)
commitdb09274d918fc8e1411ad0ad60d1f0a6ec4eb9da
tree3ba75b651bf50bf18f714cbfb584f17bb3681990
parent33d9078ac5134dce037632da60cde27145193f5a
rs6000.c (special_handling_values): Add SH_SPLAT.

[gcc]

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

* config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
(rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
handling SH_SPLAT.
(adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
of extracted lane.
(adjust_splat): New function.
(handle_special_swappables): Call adjust_splat for SH_SPLAT.
(dump_swap_insn_table): Add case for SH_SPLAT.

[gcc/testsuite]

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

* gcc.target/powerpc/swaps-p8-16.c: New test.

From-SVN: r215019
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/swaps-p8-16.c [new file with mode: 0644]