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

--- Comment #16 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

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

commit r14-1402-gd8545fb2c71683f407bfd96706103297d4d6e27b
Author: liuhongt <hongtao....@intel.com>
Date:   Mon Mar 6 15:35:37 2023 +0800

    Detect bswap + rotate for byte permutation in pass_bswap.

    The patch doesn't handle:
      1. cast64_to_32,
      2. memory source with rsize < range.

    gcc/ChangeLog:

            PR middle-end/108938
            * gimple-ssa-store-merging.cc (is_bswap_or_nop_p): New
            function, cut from original find_bswap_or_nop function.
            (find_bswap_or_nop): Add a new parameter, detect bswap +
            rotate and save rotate result in the new parameter.
            (bswap_replace): Add a new parameter to indicate rotate and
            generate rotate stmt if needed.
            (maybe_optimize_vector_constructor): Adjust for new rotate
            parameter in the upper 2 functions.
            (pass_optimize_bswap::execute): Ditto.
            (imm_store_chain_info::output_merged_store): Ditto.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr108938-1.c: New test.
            * gcc.target/i386/pr108938-2.c: New test.
            * gcc.target/i386/pr108938-3.c: New test.
            * gcc.target/i386/pr108938-load-1.c: New test.
            * gcc.target/i386/pr108938-load-2.c: New test.
  • [Bug target/108938] Missing bsw... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to