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

--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Christophe Lyon <[email protected]>:

https://gcc.gnu.org/g:52985dc611f3ad74c4878916cb469b38cc253fe9

commit r16-5268-g52985dc611f3ad74c4878916cb469b38cc253fe9
Author: Christophe Lyon <[email protected]>
Date:   Wed Aug 27 09:42:56 2025 +0000

    arm: fix MVE asrl lsll lsrl patterns [PR122216]

    The thumb2_asrl, thumb2_lsll and thumb2_lsrl patterns were incorrecly
    using (match_dup 0) for the first argument of the shift operator.

    This patch replaces that with (match_operand:DI 1
    arm_general_register_operandarm_general_register_operand "0") and
    fixes the related expanders in arm.md to use that additional argument
    and get rid of the copy of operands[1] to operands[0].

    Finally, since these patterns are MVE-only, rename them into mve_XXX
    and move them to mve.md.

    gcc/ChangeLog:

            PR target/122216
            * config/arm/thumb2.md (thumb2_asrl, thumb2_lsll, thumb2_lsrl):
            Move to ...
            * config/arm/mve.md (mve_asrl, mve_lsll, mve_lsrl): ... here. Use
            match_operand instead of match_dup.
            * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Remove useless
            copy. Update for new prototype.

Reply via email to