This is part of https://bugs.llvm.org/show_bug.cgi?id=40442.
It implements vector legalization for the add/sub overflow opcodes. UMULO/SMULO are handled as far as legalization is concerned, but they don't support vector expansion (so no tests for them).
The vector result widening implementation is suboptimal, because it could result in a legalization loop.
You can use DAG.ExtractVectorELements here