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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Wilco Dijkstra <wi...@gcc.gnu.org>:

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

commit r13-3459-ga096036589d82175a0f729c2dab73c9a527d075d
Author: Wilco Dijkstra <wdijk...@arm.com>
Date:   Mon Oct 24 15:14:14 2022 +0100

    [AArch64] Improve immediate expansion [PR106583]

    Improve immediate expansion of immediates which can be created from a
    bitmask immediate and 2 MOVKs.  Simplify, refactor and improve efficiency
    of bitmask checks.  Move various immediate handling functions together
    to avoid forward declarations.

    This reduces the number of 4-instruction immediates in SPECINT/FP by
10-15%.

    gcc/

            PR target/106583
            * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
            Add support for a bitmask immediate with 2 MOVKs.
            (aarch64_check_bitmask): New function after refactorization.
            (aarch64_bitmask_imm): Simplify replication of small modes.
            Split function into 64-bit only version for efficiency.
            (aarch64_move_imm): Move near other immediate functions.
            (aarch64_uimm12_shift): Likewise.
            (aarch64_clamp_to_uimm12_shift): Likewise.
            (aarch64_movk_shift): Likewise.
            (aarch64_replicate_bitmask_imm): Likewise.
            (aarch64_and_split_imm1): Likewise.
            (aarch64_and_split_imm2): Likewise.
            (aarch64_and_bitmask_imm): Likewise.
            (aarch64_movw_imm): Likewise.

    gcc/testsuite/
            PR target/106583
            * gcc.target/aarch64/pr106583.c: Add new test.

Reply via email to