Optimize multiplication for V8QI,V16QI,V32QI under TARGET_AVX512BW.
authorliuhongt <hongtao.liu@intel.com>
Wed, 3 Jun 2020 09:25:47 +0000 (17:25 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 15 Jun 2020 01:43:15 +0000 (09:43 +0800)
commit54cdb2f5a5b01a482d7cbce30e7b738558eecf59
treeccae80dbe6df3f68a0d5eba65c76b43cb8a2ad88
parent0dcb572c08a7b4596f5481cb4491d755a63578ab
Optimize multiplication for V8QI,V16QI,V32QI under TARGET_AVX512BW.

2020-06-13   Hongtao Liu  <hongtao.liu@intel.com>

gcc/ChangeLog:
PR target/95488
* config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New
function.
* config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Declare.
* config/i386/sse.md (mul<mode>3): Drop mask_name since
there's no real simd int8 multiplication instruction with
mask. Also optimize it under TARGET_AVX512BW.
(mulv8qi3): New expander.

gcc/testsuite/ChangeLog:
* gcc.target/i386/avx512bw-pr95488-1.c: New test.
* gcc.target/i386/avx512bw-pr95488-2.c: Ditto.
* gcc.target/i386/avx512vl-pr95488-1.c: Ditto.
* gcc.target/i386/avx512vl-pr95488-2.c: Ditto.
gcc/config/i386/i386-expand.c
gcc/config/i386/i386-protos.h
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx512bw-pr95488-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512bw-pr95488-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-pr95488-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-pr95488-2.c [new file with mode: 0644]