[llvm] [AggressiveInstCombine] Fold i64 x i64 -> i128 multiply-by-parts (PR #156879)

Cullen Rhodes via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 9 03:48:07 PDT 2025


================
@@ -1457,6 +1710,9 @@ static bool foldUnusualPatterns(Function &F, DominatorTree &DT,
       MadeChange |= foldConsecutiveLoads(I, DL, TTI, AA, DT);
       MadeChange |= foldPatternedLoads(I, DL);
       MadeChange |= foldICmpOrChain(I, DL, TTI, AA, DT);
+      MadeChange |= foldMul128Low(I, DL, DT);
----------------
c-rhodes wrote:

the target doesn't need native 128-bit, AArch64 for example doesnt have a single instruction to do a scalar 128-bit mul, but it can be done in 2 x i64 parts.

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


More information about the llvm-commits mailing list