diff options
author | Hongyu Wang <hongyu.wang@intel.com> | 2021-10-26 13:07:31 +0800 |
---|---|---|
committer | Hongyu Wang <hongyu.wang@intel.com> | 2021-11-04 14:41:30 +0800 |
commit | 3fd0723f0a388817def293e606a99bfbf3a4ced4 (patch) | |
tree | a31682307d152b6b773ab258f623fa0f0caa8383 /gcc/tree-vect-loop.c | |
parent | 7fcc22dae70af4202fe83b9ecb642fd6333464a2 (diff) | |
download | gcc-3fd0723f0a388817def293e606a99bfbf3a4ced4.zip gcc-3fd0723f0a388817def293e606a99bfbf3a4ced4.tar.gz gcc-3fd0723f0a388817def293e606a99bfbf3a4ced4.tar.bz2 |
i386: Auto vectorize sdot_prod, usdot_prod with VNNI instruction.
AVX512VNNI/AVXVNNI has vpdpwssd for HImode, vpdpbusd for QImode, so
Adjust HImode sdot_prod expander and add QImode usdot_prod expander
to enhance vectorization for dotprod.
gcc/ChangeLog:
* config/i386/sse.md (VI2_AVX512VNNIBW): New mode iterator.
(VI1_AVX512VNNI): Likewise.
(SDOT_VPDP_SUF): New mode_attr.
(VI1SI): Likewise.
(vi1si): Likewise.
(sdot_prod<mode>): Use VI2_AVX512F iterator, expand to
vpdpwssd when VNNI targets available.
(usdot_prod<mode>): New expander for vector QImode.
gcc/testsuite/ChangeLog:
* gcc.target/i386/vnni-auto-vectorize-1.c: New test.
* gcc.target/i386/vnni-auto-vectorize-2.c: Ditto.
Diffstat (limited to 'gcc/tree-vect-loop.c')
0 files changed, 0 insertions, 0 deletions