re PR target/91188 (strict_low_part operations do not work)
authorUros Bizjak <ubizjak@gmail.com>
Thu, 18 Jul 2019 17:17:31 +0000 (19:17 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 18 Jul 2019 17:17:31 +0000 (19:17 +0200)
commit07d7662ff7ed987d98a61f333169b65620ec8202
tree6249d46c573b8695de4b987c6c4c55f01b4e6de9
parent36729568fbf96ea0d481344cf3ef559c74f59f95
re PR target/91188 (strict_low_part operations do not work)

PR target/91188
* config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
for operand 0.  Do not use (match_dup) to match operand 1 with
operand 0.  Add check in insn constraint that either input operand
matches operand 0.  Use SWI12 mode iterator to also handle
HImode operands.
(*and<mode>_1_slp): Ditto.
(*<code>qi_1_slp): Ditto.
(*sub<mode>_1_slp): Use register_operand predicate for operand 0.
Do not use (match_dup) to match operand 1 with operand 0.  Add
check in insn constraint that operand 1 matches operand 0.
Use SWI12 mode iterator to also handle HImode operands.
(*ashl<mode>3_1_slp): Ditto.
(*<shift_insn><mode>3_1_slp): Ditto.
(*<rotate_insn><mode>3_1_slp): Ditto.

testsuite/ChangeLog:

PR target/91188
* gcc.target/i386/pr91188-1a.c: New test.
* gcc.target/i386/pr91188-1b.c: Ditto.
* gcc.target/i386/pr91188-1c.c: Ditto.
* gcc.target/i386/pr91188-2a.c: Ditto.
* gcc.target/i386/pr91188-2b.c: Ditto.
* gcc.target/i386/pr91188-2c.c: Ditto.

From-SVN: r273578
gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr91188-1a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr91188-1b.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr91188-1c.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr91188-2a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr91188-2b.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr91188-2c.c [new file with mode: 0644]