aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorHongyu Wang <hongyu.wang@intel.com>2021-10-26 13:07:31 +0800
committerHongyu Wang <hongyu.wang@intel.com>2021-11-04 14:41:30 +0800
commit3fd0723f0a388817def293e606a99bfbf3a4ced4 (patch)
treea31682307d152b6b773ab258f623fa0f0caa8383 /gcc/tree-vect-loop.c
parent7fcc22dae70af4202fe83b9ecb642fd6333464a2 (diff)
downloadgcc-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