[Bug target/105624] [13 Regression] ICE in final_scan_insn_1, at final.cc:2861 (error: could not split insn)

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon May 30 19:46:10 GMT 2022


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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Uros Bizjak <uros@gcc.gnu.org>:

https://gcc.gnu.org/g:3595231d9f5aec301422b152809b1322bdb525fe

commit r13-854-g3595231d9f5aec301422b152809b1322bdb525fe
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Mon May 30 21:38:16 2022 +0200

    i386: Remove constraints when used with constant integer predicates, take 2

    const_int_operand and other const*_operand predicates do not need
    constraints when the constraint is inherited from the range of
    constant integer predicate.  Remove the constraint in case all
    alternatives use the same inherited constraint.

    However, when there are operands, commitative with a non-constant
    operand, the operand effectively matches e.g.
    nonimmediate_operand|const_int_operand rather than just
    const_int_operand.  We should keep the constraint for
    const_int_operand that are in a % pair. See PR 105624.

    2022-05-30  Uroš Bizjak  <ubizjak@gmail.com>

    gcc/ChangeLog:

            * config/i386/i386.md: Remove constraints when used with
            const_int_operand, const0_operand, const_1_operand,
constm1_operand,
            const8_operand, const128_operand, const248_operand,
const123_operand,
            const2367_operand, const1248_operand, const359_operand,
            const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
            const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
            const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
            const_0_to_63_operand, const_0_to_127_operand,
const_0_to_255_operand,
            const_0_to_255_mul_8_operand, const_1_to_31_operand,
            const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
            const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
            const_8_to_11_operand, const_8_to_15_operand,
const_10_to_11_operand,
            const_12_to_13_operand, const_12_to_15_operand,
const_14_to_15_operand,
            const_16_to_19_operand, const_16_to_31_operand,
const_20_to_23_operand,
            const_24_to_27_operand and const_28_to_31_operand.
            * config/i386/mmx.md: Ditto.
            * config/i386/sse.md: Ditto.
            * config/i386/subst.md: Ditto.
            * config/i386/sync.md: Ditto.

    gcc/testsuite/ChangeLog:

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


More information about the Gcc-bugs mailing list