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

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:74bca21db31e3f4ab6543b56c3f26b4dfe586fef

commit r14-9453-g74bca21db31e3f4ab6543b56c3f26b4dfe586fef
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Mar 13 15:34:59 2024 +0100

    store-merging: Match bswap64 on 32-bit targets with bswapsi2 [PR114319]

    gimple-ssa-store-merging.cc tests bswap_optab in 3 different places,
    in 2 of them it has special exception for double-word bswap using pair
    of word-mode bswap optabs, but in the last one it doesn't.

    The following patch changes even the last spot.
    We don't handle 128-bit bswaps in the passes at all, because currently we
    just use uint64_t to represent the byte reshuffling (we'd need to use
    offset_int or something like that instead) and we don't have
    __builtin_bswap128 nor type-generic __builtin_bswap, so there is nothing
    for 64-bit targets there.

    2024-03-13  Jakub Jelinek  <ja...@redhat.com>

            PR middle-end/114319
            * gimple-ssa-store-merging.cc
            (imm_store_chain_info::try_coalesce_bswap): For 32-bit targets
            allow matching __builtin_bswap64 if there is bswapsi2 optab.

            * gcc.target/i386/pr114319.c: New test.

Reply via email to