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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jiu Fu Guo <guoji...@gcc.gnu.org>:

https://gcc.gnu.org/g:5eb7d560626e427673c53723ed430c4bb5721f33

commit r14-923-g5eb7d560626e427673c53723ed430c4bb5721f33
Author: Jiufu Guo <guoji...@linux.ibm.com>
Date:   Sat Dec 10 21:18:51 2022 +0800

    rs6000: use lis;xoris to build constant

    For constant C:
    If '(c & 0xFFFFFFFF0000FFFFULL) == 0xFFFFFFFF00000000' or say:
    32(1) || 1(0) || 15(x) || 16(0), we could use "lis; xoris" to build.

    Here N(M) means N continuous bit M, x for M means it is ok for either
    1 or 0; '||' means concatenation.

    This patch update rs6000_emit_set_long_const to support those constants.

    Compare with previous version:
    https://gcc.gnu.org/pipermail/gcc-patches/2022-December/608292.html
    This patch updates test function names only.

    Bootstrap and regtest pass on ppc64{,le}.

            PR target/106708

    gcc/ChangeLog:

            * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Support
building
            constants through "lis; xoris".

    gcc/testsuite/ChangeLog:

            * gcc.target/powerpc/pr106708.c: Add test function.

Reply via email to