The existing implementations are almost identical except for width of the integer type.
Factor them out to int_mulo_impl.inc for better maintainability.
The following command may help understanding the changes:
diff int_mulo_impl.inc \ <(git show master:./mulosi4.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.
Note: this patch is almost identical to D86277: [NFC][compiler-rt] Factor out __mulv[sdt]i3 implementations to .inc file.