S/390: Fix vecinit expansion.
commit4ba2579ed65721a755a633e150b980c53ec995a5
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Jul 2016 07:05:11 +0000 (6 07:05 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Jul 2016 07:05:11 +0000 (6 07:05 +0000)
tree4ce928c72b6002b2185dd631e970595770f79e8a
parentce3930637f780522324a984f16d3d1499d246139
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@238032 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/s390/s390.c