AVX-512. Add insert insn patterns.
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 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use AVX512_VEC mode iterator. (define_insn "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"): Ditto. (define_expand "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use AVX512_VEC_2 mode iterator. (define_insn "vec_set_lo_<mode><mask_name>"): New. (define_insn "vec_set_hi_<mode><mask_name>"): Ditto. (define_expand "avx512vl_vinsert<mode>"): Ditto. (define_insn "avx2_vec_set_lo_v4di"): Delete. (define_insn "avx2_vec_set_hi_v4di"): Ditto. (define_insn "vec_set_lo_<mode><mask_name>"): Add masking. (define_insn "vec_set_hi_<mode><mask_name>"): Ditto. (define_insn "vec_set_lo_<mode><mask_name>"): Ditto. (define_insn "vec_set_hi_<mode><mask_name>"): Ditto. (define_expand "avx2_extracti128"): Delete. (define_expand "avx2_inserti128"): Ditto. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215542
Showing
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment