]> gcc.gnu.org Git - gcc.git/commit
tree-optimization/98221 - fix wrong unpack operation used for big-endian
authorAndreas Krebbel <krebbel@gcc.gnu.org>
Mon, 11 Jan 2021 09:59:43 +0000 (10:59 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 12 Jan 2021 07:58:31 +0000 (08:58 +0100)
commitecab0d9106a317073f5891f161f031078d835b2f
tree4d80799d291948bce31cb32cfbdf7f67aebfea23
parenteebaeb8c596cc34e54ded9a74c9b6f6ee043544a
tree-optimization/98221 - fix wrong unpack operation used for big-endian

The vec-abi-varargs-1.c testcase on IBM Z currently fails.

While adding an SI mode vector to a DI mode vector the first is unpacked using:

  _28 = BIT_INSERT_EXPR <{ 0, 0, 0, 0 }, _2, 0>;
  _34 = [vec_unpack_lo_expr] _28;

However, on big endian targets lo refers to the right hand side of the vector - in this case the zeroes.

2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>

PR tree-optimization/98221
* tree-ssa-forwprop.c (simplify_vector_constructor): For
big-endian, use UNPACK[_FLOAT]_HI.

(cherry picked from commit 300a3ce5c5695eb1a7c0476e9d1b45420a463248)
gcc/tree-ssa-forwprop.c
This page took 0.058021 seconds and 5 git commands to generate.