https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98221

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Richard Biener
<rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:ecab0d9106a317073f5891f161f031078d835b2f

commit r10-9253-gecab0d9106a317073f5891f161f031078d835b2f
Author: Andreas Krebbel <kreb...@gcc.gnu.org>
Date:   Mon Jan 11 10:59:43 2021 +0100

    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  <kreb...@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)

Reply via email to