S/390: Fix vecinit expansion.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Wed, 6 Jul 2016 07:05:11 +0000 (07:05 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Wed, 6 Jul 2016 07:05:11 +0000 (07:05 +0000)
commita07189f4555b29f44945e548461ef26246a917f2
tree4ce928c72b6002b2185dd631e970595770f79e8a
parent8070763a2cd6d84f8614890a9a7bfae57b44c047
S/390: Fix vecinit expansion.

The fallback routine in the S/390 vecinit expander did not check
whether each of the initializer elements is a proper general_operand.
Since revision r236582 the expander is invoked also with e.g. symbol
refs with an odd addend resulting in invalid insns.

Fixed by forcing the element into a register in such cases.

gcc/ChangeLog:

2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_expand_vec_init): Force initializer
element to register if it doesn't match general_operand.

From-SVN: r238032
gcc/ChangeLog
gcc/config/s390/s390.c