i386.md (UNSPEC_VSIBADDR): New.
authorJakub Jelinek <jakub@redhat.com>
Wed, 26 Oct 2011 09:46:45 +0000 (11:46 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 26 Oct 2011 09:46:45 +0000 (11:46 +0200)
commite43451aaaf45b9d8d43f6dd2aa1ac1b51d6089ed
treec91519d05344769a0667ba605555a25ca11f993b
parent6c137ca0a2c514c3d8003b4a38e9b0d1cb3237b2
i386.md (UNSPEC_VSIBADDR): New.

* config/i386/i386.md (UNSPEC_VSIBADDR): New.
* config/i386/predicates.md (vsib_address_operand,
vsib_mem_operator): New predicates.
* config/i386/i386.c (ix86_print_operand_address): Handle
UNSPEC_VSIBADDR addresses.
* config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
avx2_gatherdi<mode>256): Adjust expanders to use MEM with
UNSPEC_VSIBADDR address.
(*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
Adjust insns to use MEM with UNSPEC_VSIBADDR address.

* gcc.target/i386/avx2-i32gatherd-1.c: Adjust scan-assembler regex
to work also with -masm=intel and additionally test the xmm vs. ymm
register type combination on mask/dest and in vsib.
* gcc.target/i386/avx2-i32gatherd256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherd256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherd-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherps-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherps256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherps256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherps-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherq-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherq256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherq256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherq-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherd-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherd256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherd256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherd-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherps-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherps256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherps256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherps-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherq-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherq256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherq256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherq-3.c: Likewise.

From-SVN: r180520
38 files changed:
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/predicates.md
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx2-i32gatherd-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherd-3.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherd256-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherd256-3.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherpd-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherpd-3.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherpd256-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherpd256-3.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherps-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherps-3.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherps256-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherps256-3.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherq-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherq-3.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherq256-1.c
gcc/testsuite/gcc.target/i386/avx2-i32gatherq256-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherd-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherd-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherd256-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherd256-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherpd-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherpd-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherpd256-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherpd256-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherps-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherps-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherps256-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherps256-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherq-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherq-3.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherq256-1.c
gcc/testsuite/gcc.target/i386/avx2-i64gatherq256-3.c