This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, i386]: Fix PR 78967, inserts are not effective


Hello!

Attached patch introduces various missing insert patterns, improving
attached testcases considerably. As a necessary complication to
improve robustness, the patch tags x86_64 patterns that require memory
operands without REX prefix with a UNSPEC_NOREX_MEM tag to prevent
unwanted pattern matching through subregs.

The patch also tightens scan-assembler patterns in a couple of pr78904
testcases.

2017-01-02  Uros Bizjak  <ubizjak@gmail.com>

    PR target/78967
    * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
    (*insvqi_1): New insn pattern.
    (*insvqi_1_mem_rex64): Ditto.
    (*insvqi_2): Ditto.
    (*insvqi_3): Rename from *insvqi.

    (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.

testsuite/ChangeLog:

2017-01-02  Uros Bizjak  <ubizjak@gmail.com>

    PR target/78967
    * gcc.target/i386/pr78967-1.c: New test.
    * gcc.target/i386/pr78967-2.c: Ditto.
    * gcc.target/i386/pr78967-3.c: Ditto.

    * gcc.target/i386/pr78904-2.c: Tighten scan-asm patterns.
    * gcc.target/i386/pr78904-4.c: Ditto.
    * gcc.target/i386/pr78904-6.c: Ditto.

Patch was bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.

Attachment: p.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]