public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] i386: Remove constraints when used with constant integer predicates, take 2
@ 2022-05-30 19:51 Uros Bizjak
  0 siblings, 0 replies; only message in thread
From: Uros Bizjak @ 2022-05-30 19:51 UTC (permalink / raw)
  To: gcc-patches; +Cc: Richard Sandiford

[-- Attachment #1: Type: text/plain, Size: 2118 bytes --]

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.

Bootstrapped and regression tested on x86_64 -linux-gnu {,-m32}.

Pushed to master.

Uros.

[-- Attachment #2: p.diff.txt.gz --]
[-- Type: application/gzip, Size: 11951 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-05-30 19:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-30 19:51 [PATCH] i386: Remove constraints when used with constant integer predicates, take 2 Uros Bizjak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).