On Tue, Jan 21, 2014 at 2:42 PM, Ilya Tocar <tocarip.in...@gmail.com> wrote:
> I found out that we forgot to implement some of AVX512 intrinsics. > Here is a patch that adds them. Sorry for huge patch, but changes are > mostly trivial. > Ok for trunk? > +(define_insn "avx512f_<code><pmov_src_lower><mode>2_mask_store" > + [(set (match_operand:PMOV_DST_MODE 0 "nonimmediate_operand" "=m") > + (vec_merge:PMOV_DST_MODE > + (any_truncate:PMOV_DST_MODE > + (match_operand:<pmov_src_mode> 1 "register_operand" "v")) > + (match_dup 0) > + (match_operand:<avx512fmaskmode> 2 "register_operand" "k")))] > + "TARGET_AVX512F" > + "vpmov<trunsuffix><pmov_suff>\t{%1, %0%{%2%}|%0%{%2%}, %1}" > + [(set_attr "type" "ssemov") > + (set_attr "memory" "store") > + (set_attr "prefix" "evex") > + (set_attr "mode" "<sseinsnmode>")]) This is the same as the second alternative of the avx512f_<code><pmov_src_lower>2_mask pattern. Please change the above into an expander to reuse existing pattern. Uros.