[llvm] [TargetLowering] Improve one signature of forceExpandWideMUL. (PR #123991)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 22 23:17:40 PST 2025


================
@@ -10952,22 +10952,73 @@ void TargetLowering::forceExpandWideMUL(SelectionDAG &DAG, const SDLoc &dl,
                                         SDValue &Hi) const {
   EVT VT = LHS.getValueType();
   assert(RHS.getValueType() == VT && "Mismatching operand types");
+  EVT WideVT = EVT::getIntegerVT(*DAG.getContext(), VT.getSizeInBits() * 2);
+  // We can fall back to a libcall with an illegal type for the MUL if we
+  // have a libcall big enough.
+  // Also, we can fall back to a division in some cases, but that's a big
+  // performance hit in the general case.
----------------
topperc wrote:

I copied this switch and comment block from the other function without reading it. There's no division there either. I can delete it.

https://github.com/llvm/llvm-project/pull/123991


More information about the llvm-commits mailing list