aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2023-11-23 13:10:41 +0800
committerliuhongt <hongtao.liu@intel.com>2023-11-30 15:39:38 +0800
commitb4a7c1c8c59d191bff64a720cca61d1d308af531 (patch)
tree0cb24e85acd7f8b637316095a268fa4f7ac467c9 /gcc/ada
parenta1a3939bea5b0d9cbd3465d96e7e4a5222ae6c48 (diff)
downloadgcc-b4a7c1c8c59d191bff64a720cca61d1d308af531.zip
gcc-b4a7c1c8c59d191bff64a720cca61d1d308af531.tar.gz
gcc-b4a7c1c8c59d191bff64a720cca61d1d308af531.tar.bz2
Support sdot_prodv*qi with emulation of sdot_prodv*hi.
Currently sdot_prodv*qi is available under TARGET_AVXVNNIINT8, but it can be emulated by vec_unpacks_lo_v32qi vec_unpacks_lo_v32qi vec_unpacks_hi_v32qi vec_unpacks_hi_v32qi sdot_prodv16hi sdot_prodv16hi add3v8si which is faster than original vect_patt_39.11_48 = WIDEN_MULT_LO_EXPR <vect__3.7_44, vect__7.10_47>; vect_patt_39.11_49 = WIDEN_MULT_HI_EXPR <vect__3.7_44, vect__7.10_47>; vect_patt_38.14_54 = [vec_unpack_lo_expr] vect_patt_39.11_48; vect_patt_38.14_55 = [vec_unpack_hi_expr] vect_patt_39.11_48; vect_patt_38.14_56 = [vec_unpack_lo_expr] vect_patt_39.11_49; vect_patt_38.14_57 = [vec_unpack_hi_expr] vect_patt_39.11_49; vect_sum_15.15_59 = vect_patt_38.14_54 + vect_patt_38.14_55; vect_sum_15.15_60 = vect_patt_38.14_56 + vect_sum_15.15_59; vect_sum_15.15_61 = vect_patt_38.14_57 + vect_sum_15.15_60; gcc/ChangeLog: * config/i386/sse.md (sdot_prodv64qi): New expander. (sseunpackmodelower): New mode attr. (sdot_prod<mode>): Emulate sdot_prodv*qi with sodt_prov*hi when TARGET_VNNIINT8 is not available. gcc/testsuite/ChangeLog: * gcc.target/i386/sdotprodint8_emulate.c: New test.
Diffstat (limited to 'gcc/ada')
0 files changed, 0 insertions, 0 deletions