The existing implementations are almost identical except for width of the integer type.
Factor them out to int_mulv_impl.inc for better maintainability.
The following command may help understanding the changes:
diff int_mulv_impl.inc \ <(git show master:./mulvsi3.c | sed 's/si_int/fixint_t/g')
The si and di variants has three lines different (with two of them being comments) and ti has a bit larger diff.