-
- Downloads
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.
Showing
- gcc/config/i386/i386-expand.cc 60 additions, 0 deletionsgcc/config/i386/i386-expand.cc
- gcc/config/i386/mmx.md 209 additions, 62 deletionsgcc/config/i386/mmx.md
- gcc/config/i386/sse.md 2 additions, 2 deletionsgcc/config/i386/sse.md
- gcc/testsuite/gcc.target/i386/part-vect-vec_elem-1.c 135 additions, 0 deletionsgcc/testsuite/gcc.target/i386/part-vect-vec_elem-1.c
- gcc/testsuite/gcc.target/i386/part-vect-vec_elem-2.c 135 additions, 0 deletionsgcc/testsuite/gcc.target/i386/part-vect-vec_elem-2.c
Loading
Please register or sign in to comment