https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90497
--- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> --- Why do we have define_expand "sse2_umulv1siv1di3" [(set (match_operand:V1DI 0 "register_operand") (mult:V1DI (zero_extend:V1DI (vec_select:V1SI (match_operand:V2SI 1 "nonimmediate_operand") (parallel [(const_int 0)]))) (zero_extend:V1DI (vec_select:V1SI (match_operand:V2SI 2 "nonimmediate_operand") (parallel [(const_int 0)])))))] "TARGET_SSE2" "ix86_fixup_binary_operands_no_copy (MULT, V2SImode, operands);") i386-builtin.def:BDESC (OPTION_MASK_ISA_SSE2 | OPTION_MASK_ISA_MMX, 0, CODE_FOR_sse2_umulv1siv1di3, "__builtin_ia32_pmuludq", IX86_BUILTIN_PMULUDQ, UNKNOWN, (int) V1DI_FTYPE_V2SI_V2SI) sse2_umulv1siv1di3 isn't available with MMX.