diff options
author | liuhongt <hongtao.liu@intel.com> | 2023-12-04 11:47:32 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2023-12-05 09:35:25 +0800 |
commit | 48cf8d0773fee2f7acf2b9778c7af7e344de07e6 (patch) | |
tree | 734335a2a0d9e4e290833d5dcd6d0b1345addad6 /gcc/tree-pass.h | |
parent | 1f1c432226cf3db399b2a2a627e3c5720b02b1d6 (diff) | |
download | gcc-48cf8d0773fee2f7acf2b9778c7af7e344de07e6.zip gcc-48cf8d0773fee2f7acf2b9778c7af7e344de07e6.tar.gz gcc-48cf8d0773fee2f7acf2b9778c7af7e344de07e6.tar.bz2 |
Support udot_prodv*qi with emulation sdot_prodv*hi
Like r14-5990-gb4a7c1c8c59d19, but the patch optimized for udot_prod.
Since (zero_extend) (unsigned char)-> int is equal
to (zero_extend)(unsigned char) -> short
+ (sign_extend) (short) -> int
It should be safe to emulate udot_prodv*qi with
vec_unpacku_lo_v32qi
vec_unpacku_lo_v32qi
vec_unpacku_hi_v32qi
vec_unpacku_hi_v32qi
sdot_prodv16hi
sdot_prodv16hi
add3v8si
gcc/ChangeLog:
* config/i386/sse.md (udot_prodv64qi): New expander.
(udot_prod<mode>): Emulates with VEC_UNPACKU_EXPR +
DOT_PROD (short, int).
gcc/testsuite/ChangeLog:
* gcc.target/i386/udotprodint8_emulate.c: New test.
Diffstat (limited to 'gcc/tree-pass.h')
0 files changed, 0 insertions, 0 deletions