https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69459
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- We need to adjust md.texi too. Also, I see there are 7 different uses of constraint "C" in i386.md with general_operand predicate, are you sure you don't want "BC" for those? Stuff like *movti_internal *movdi_internal *movsi_internal *movtf_internal *movxf_internal *movdf_internal *movsf_internal Though, all those don't use vector mode on those operands, and I bet standard_sse_constant_p in that case never returns 2, so maybe that is fine. But then there is another thing, the old "C" would never match anything, not even the const0_rtx/CONST0_RTX, if !TARGET_SSE, while your patch matches it no matter whether -msse is on or not. E.g. for the above mentioned *mov*_internal insns, but there it is used if the destination is y, x, v constraint. But e.g. in *movxf_internal it is into o.