[llvm] [X86] Optimized ADD + ADC to ADC (PR #173543)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 31 12:27:20 PST 2025


================
@@ -58164,6 +58164,17 @@ static SDValue combineX86AddSub(SDNode *N, SelectionDAG &DAG,
     }
   }
 
+  // Fold ADD(ADC(Y, C1, CF), C2) -> ADC(Y, C1 + C2, CF)
+  if (!IsSub && LHS.getOpcode() == X86ISD::ADC &&
+      isa<ConstantSDNode>(LHS.getOperand(1)) && isa<ConstantSDNode>(RHS) &&
+      !needCarryOrOverflowFlag(SDValue(N, 1))) {
+    auto *C1 = dyn_cast<ConstantSDNode>(LHS.getOperand(1));
----------------
topperc wrote:

dyn_cast -> cast.

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


More information about the llvm-commits mailing list