https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81034
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED Target Milestone|--- |9.0 --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Oh I see the problem this time around: (const_vector:V2DF [(const_int 0) (const_int 0)]) That should have been: const_double for V2DF rather than const_int. Which has to be done by define_expand and match_dup and CONST0_RTX. Anyways these intrinsic were implemented at r9-6397 and this shows what should have been done: (define_expand "avx512f_load<mode>_mask" [(set (match_operand:<ssevecmode> 0 "register_operand") (vec_merge:<ssevecmode> (vec_merge:<ssevecmode> (vec_duplicate:<ssevecmode> (match_operand:MODEF 1 "memory_operand")) (match_operand:<ssevecmode> 2 "nonimm_or_0_operand") (match_operand:QI 3 "register_operand")) (match_dup 4) (const_int 1)))] "TARGET_AVX512F" "operands[4] = CONST0_RTX (<ssevecmode>mode);") (define_insn "*avx512f_load<mode>_mask" [(set (match_operand:<ssevecmode> 0 "register_operand" "=v") (vec_merge:<ssevecmode> (vec_merge:<ssevecmode> (vec_duplicate:<ssevecmode> (match_operand:MODEF 1 "memory_operand" "m")) (match_operand:<ssevecmode> 2 "nonimm_or_0_operand" "0C") (match_operand:QI 3 "register_operand" "Yk")) (match_operand:<ssevecmode> 4 "const0_operand" "C") (const_int 1)))] "TARGET_AVX512F" "vmov<ssescalarmodesuffix>\t{%1, %0%{%3%}%N2|%0%{3%}%N2, %1}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "memory" "load") (set_attr "mode" "<MODE>")])