re PR target/71186 (PowerPC64: Autovectorised code hits ICE with -O3 -mpower9 -mlra)
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Wed, 1 Jun 2016 20:09:35 +0000 (20:09 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Wed, 1 Jun 2016 20:09:35 +0000 (20:09 +0000)
commit58f2fb5ca16a39f3af10dee718d87335b3cd5222
tree101aace055650117d838bc78d446312d3a1c4eaf
parent4731c9f025a6c14d77e3127b8c64a46bd933c687
re PR target/71186 (PowerPC64: Autovectorised code hits ICE with -O3 -mpower9 -mlra)

[gcc]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71186
* config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
for loading up all 0's or all 1's.

[gcc/testsuite]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71186
* gcc.target/powerpc/pr71186.c: New test.

Index: gcc/config/rs6000/vsx.md
===================================================================
--- gcc/config/rs6000/vsx.md (.../svn+ssh://meissner@gcc.gnu.org/svn/gcc/trunk/gcc/config/rs6000) (revision 236935)
+++ gcc/config/rs6000/vsx.md (.../gcc/config/rs6000) (working copy)
@@ -776,8 +776,8 @@ (define_insn "xxspltib_v16qi"
   [(set_attr "type" "vecperm")])

 (define_insn "xxspltib_<mode>_nosplit"
-  [(set (match_operand:VSINT_842 0 "vsx_register_operand" "=wa")
- (match_operand:VSINT_842 1 "xxspltib_constant_nosplit" "wE"))]
+  [(set (match_operand:VSINT_842 0 "vsx_register_operand" "=wa,wa")
+ (match_operand:VSINT_842 1 "xxspltib_constant_nosplit" "jwM,wE"))]
   "TARGET_P9_VECTOR"
 {
   rtx op1 = operands[1];

[gcc]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
alternatives, eliminating preferred register class.  Add support
for the MTVSRDD instruction in ISA 3.0.
(vsx_splat_v4si_internal): Use splat_input_operand instead of
reg_or_indexed_operand.
(vsx_splat_v4sf_internal): Likewise.

[gcc/testsuite]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

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

From-SVN: r237006
gcc/ChangeLog
gcc/config/rs6000/vsx.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/p9-splat-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr71186.c [new file with mode: 0644]