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.
clang-tidy: error: unknown type name 'fixint_t' [clang-diagnostic-error]
not useful
clang-tidy: warning: invalid case style for function '__muloXi4' [readability-identifier-naming]
not useful
clang-tidy: error: unknown type name 'fixint_t' [clang-diagnostic-error]
not useful
clang-tidy: error: unknown type name 'fixint_t' [clang-diagnostic-error]
not useful