AVX-512. Add insert insn patterns

Programming / Compilers / GCC - kyukhin [138bc75d-0d04-0410-961f-82ee72b054a4] - 24 September 2014 03:02 UTC

gcc/
- config/i386/i386.c (CODE_FOR_avx2_extracti128): Rename to ... (CODE_FOR_avx_vextractf128v4di): this. (CODE_FOR_avx2_inserti128): Rename to ... (CODE_FOR_avx_vinsertf128v4di): this. (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di, CODE_FOR_avx_vextractf128v4di. (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask, CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df, CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf, CODE_FOR_avx512vl_vinsertv8si.
- config/i386/sse.md (define_expand "_vinsert_mask"): Use AVX512_VEC mode iterator. (define_insn "_vinsert_1"): Ditto. (define_expand "_vinsert_mask"): Use AVX512_VEC_2 mode iterator. (define_insn "vec_set_lo_"): New. (define_insn "vec_set_hi_"): Ditto. (define_expand "avx512vl_vinsert"): Ditto. (define_insn "avx2_vec_set_lo_v4di"): Delete. (define_insn "avx2_vec_set_hi_v4di"): Ditto. (define_insn "vec_set_lo_"): Add masking. (define_insn "vec_set_hi_"): Ditto. (define_insn "vec_set_lo_"): Ditto. (define_insn "vec_set_hi_"): Ditto. (define_expand "avx2_extracti128"): Delete. (define_expand "avx2_inserti128"): Ditto.

4e303d3 AVX-512. Add insert insn patterns.
gcc/ChangeLog | 42 ++++++++
gcc/config/i386/i386.c | 14 ++-
gcc/config/i386/sse.md | 281 +++++++++++++++++++++++-------------------------
3 files changed, 186 insertions(+), 151 deletions(-)

Upstream: gcc.gnu.org


  • Share