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

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Kyrylo Tkachov <ktkac...@gcc.gnu.org>:

https://gcc.gnu.org/g:161e246cf32f1298400aa3c1d86110490a3cd0ce

commit r15-4963-g161e246cf32f1298400aa3c1d86110490a3cd0ce
Author: Kyrylo Tkachov <ktkac...@nvidia.com>
Date:   Tue Nov 5 05:10:22 2024 -0800

    PR target/117449: Restrict vector rotate match and split to pre-reload

    The vector rotate splitter has some logic to deal with post-reload
splitting
    but not all cases in aarch64_emit_opt_vec_rotate are post-reload-safe.
    In particular the ROTATE+XOR expansion for TARGET_SHA3 can create RTL that
    can later be simplified to a simple ROTATE post-reload, which would then
    match the insn again and try to split it.
    So do a clean split pre-reload and avoid going down this path post-reload
    by restricting the insn_and_split to can_create_pseudo_p ().

    Bootstrapped and tested on aarch64-none-linux.

    Signed-off-by: Kyrylo Tkachov <ktkac...@nvidia.com>
    gcc/

            PR target/117449
            * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
            Match only when can_create_pseudo_p ().
            * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Assume
            can_create_pseudo_p ().

    gcc/testsuite/

            PR target/117449
            * gcc.c-torture/compile/pr117449.c: New test.

Reply via email to