AVX-512. Add shuffles (pd, 32x4, etc.).
gcc/
* config/i386/i386.c
(ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
* config/i386/sse.md
(define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
(define_insn
"<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
(define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
(define_insn
"<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
(define_expand "avx512vl_pshufdv3_mask"): Ditto.
(define_insn "avx2_pshufd_1<mask_name>"): Add masking.
(define_expand "avx512vl_pshufd_mask"): New.
(define_insn "sse2_pshufd_1<mask_name>"): Add masking.
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: r215543