diff options
author | liuhongt <hongtao.liu@intel.com> | 2023-11-08 14:52:01 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2023-11-13 18:36:12 +0800 |
commit | 2794d510b979be76b0fee4521d1a454332176007 (patch) | |
tree | ee192f95d791b958942981010c0e494bce2f7bca /gcc/cppdefault.cc | |
parent | b51bfee1beed03872ea0289cb47dd2336d9f528c (diff) | |
download | gcc-2794d510b979be76b0fee4521d1a454332176007.zip gcc-2794d510b979be76b0fee4521d1a454332176007.tar.gz gcc-2794d510b979be76b0fee4521d1a454332176007.tar.bz2 |
Support vec_set/vec_extract/vec_init for V4HF/V2HF.
gcc/ChangeLog:
* config/i386/i386-expand.cc
(ix86_expand_vector_init_duplicate): Handle V4HF/V4BF and
V2HF/V2BF.
(ix86_expand_vector_init_one_nonzero): Ditto.
(ix86_expand_vector_init_one_var): Ditto.
(ix86_expand_vector_init_general): Ditto.
(ix86_expand_vector_set_var): Ditto.
(ix86_expand_vector_set): Ditto.
(ix86_expand_vector_extract): Ditto.
* config/i386/mmx.md
(mmxdoublevecmode): Extend to V4HF/V4BF/V2HF/V2BF.
(*mmx_pinsrw): Extend to V4FI_64, add a new alternative (&x,
x, x), add a new define_split after the pattern.
(*mmx_pextrw<mode>): New define_insn.
(mmx_pshufw_1): Rename to ..
(mmx_pshufw<mode>_1): .. this, extend to V4FI_64.
(*mmx_pblendw64): Extend to V4FI_64.
(*vec_dup<mode>): New define_insn.
(vec_setv4hi): Rename to ..
(vec_set<mode>): .. this, and extend to V4FI_64
(vec_extractv4hihi): Rename to ..
(vec_extract<mode><mmxscalarmodelower>): .. this, and extend
to V4FI_64.
(vec_init<mode><mmxscalarmodelower>): New define_insn.
(*pinsrw): Extend to V2FI_32, add a new alternative (&x,
x, x), and add a new define_split after it.
(*pextrw<mode>): New define_insn.
(vec_setv2hi): Rename to ..
(vec_set<mode>): .. this, extend to V2FI_32.
(vec_extractv2hihi): Rename to ..
(vec_extract<mode><mmxscalarmodelower>): .. this, extend to
V2FI_32.
(*punpckwd): Extend to V2FI_32.
(*pshufw_1): Rename to ..
(*pshufw<mode>_1): .. this, extend to V2FI_32.
(vec_initv2hihi): Rename to ..
(vec_init<mode><mmxscalarmodelower>): .. this, and extend to
V2FI_32.
(*vec_dup<mode>): New define_insn.
* config/i386/sse.md (*vec_extract<mode>): Refine constraint
from v to Yw.
gcc/testsuite/ChangeLog:
* gcc.target/i386/part-vect-vec_elem-1.c: New test.
* gcc.target/i386/part-vect-vec_elem-2.c: New test.
Diffstat (limited to 'gcc/cppdefault.cc')
0 files changed, 0 insertions, 0 deletions