predicates.md (splat_input_operand): Rework.
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Thu, 23 Jun 2016 19:19:09 +0000 (19:19 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Thu, 23 Jun 2016 19:19:09 +0000 (19:19 +0000)
commit2d4bb02f62cdf5a37b1d26188138dad6a69e14d1
tree895cc035e8e6215f8641f6773aa984410f6d6283
parenta239d460519a9d8a4b7c973a3d9f3f356faf3e15
predicates.md (splat_input_operand): Rework.

[gcc]
2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/predicates.md (splat_input_operand): Rework.
Don't allow constants, since the insns that use this predicate
don't support constants.  Constants are handled by other insns
that are created via combine.  During and after register
allocation, only allow indexed or indirect addresses, and not
general addresses.  Only allow modes supported by the hardware.
* config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
comment.  Move check for using VSPLTIS<x> to a common location,
instead of doing it in two different places.

[gcc/testsuite]
2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/p9-splat-5.c: New test.

Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
From-SVN: r237743
gcc/ChangeLog
gcc/config/rs6000/predicates.md
gcc/config/rs6000/rs6000.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/p9-splat-5.c [new file with mode: 0644]