re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but...
authorJakub Jelinek <jakub@redhat.com>
Fri, 20 Oct 2017 07:30:33 +0000 (09:30 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 20 Oct 2017 07:30:33 +0000 (09:30 +0200)
commit42a764f76f14ce2718d30459dc140d1410ef118e
tree77ac7144af0f06908195243d98d43b3cdf67721a
parentc274eebe4ebaea9ee9e3dd7e1c0a8a4fb3108472
re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.)

PR target/82370
* config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
New mode iterators.
(<shift_insn><mode>3<mask_name>): Change the last of the 3
define_insns for logical vector shifts to use VI248_AVX512BW
iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
condition, useless isa and prefix attributes.  Change the first
2 of these define_insns to ...
(<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
define_insn for avx512vl.
(<shift_insn><mode>3): ... and this, new define_insn without
masking for non-avx512vl.

* gcc.target/i386/avx-pr82370.c: New test.
* gcc.target/i386/avx2-pr82370.c: New test.
* gcc.target/i386/avx512f-pr82370.c: New test.
* gcc.target/i386/avx512bw-pr82370.c: New test.
* gcc.target/i386/avx512vl-pr82370.c: New test.
* gcc.target/i386/avx512vlbw-pr82370.c: New test.

From-SVN: r253924
gcc/ChangeLog
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-pr82370.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx2-pr82370.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-pr82370.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-pr82370.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vlbw-pr82370.c [new file with mode: 0644]