[Bug target/122858] [15/16 regression] gcc.c-torture/execute/ashrdi-1.c fail on arm with MVE since r16-5269-ge359564db3ed18

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 1 20:13:49 GMT 2025


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

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Christophe Lyon <clyon@gcc.gnu.org>:

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

commit r16-5804-gcf78d402655d5fc9cb8780cb8837889afbe17ff6
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Wed Nov 26 13:03:37 2025 +0000

    arm: Fix constraints in MVE asrl and lsll patterns [PR122858]

    The second alternative for operand 1 needs a new constraint which does
    not overlap with Pg, except that it can handle 32 to generate an
    optimal mov.

    This patch introduces a new Ph constraint which has the [32..255]
    range.

    This fixes a lot of regressions when running the testsuite for an MVE
    target such as -march=armv8.1-m.main+mve.fp+fp.dp -mfloat-abi=hard.

    gcc/ChangeLog:

            PR target/122858
            * config/arm/constraints.md (Ph): New constraint.
            * config/arm/mve.md (mve_asrl_imm, mve_lsll_imm): Fix constraints
            of operand 1 and handle 32 as special shift amount.

    gcc/testsuite/ChangeLog:

            PR target/122858
            * gcc.target/arm/mve/pr122858.c: New test.


More information about the Gcc-bugs mailing list