aboutsummaryrefslogtreecommitdiff
path: root/gcc/cppdefault.cc
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2023-11-08 14:52:01 +0800
committerliuhongt <hongtao.liu@intel.com>2023-11-13 18:36:12 +0800
commit2794d510b979be76b0fee4521d1a454332176007 (patch)
treeee192f95d791b958942981010c0e494bce2f7bca /gcc/cppdefault.cc
parentb51bfee1beed03872ea0289cb47dd2336d9f528c (diff)
downloadgcc-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