[llvm] [PowerPC] Deprecate uses of ISD::ADDC/ISD::ADDE/ISD::SUBC/ISD::SUBE (PR #116984)

zhijian lin via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 15 11:20:52 PST 2025


================
@@ -18252,11 +18320,13 @@ static SDValue combineADDToADDZE(SDNode *N, SelectionDAG &DAG,
     SDValue Add = DAG.getNode(ISD::ADD, DL, MVT::i64, Z,
                               DAG.getConstant(NegConstant, DL, MVT::i64));
     SDValue AddOrZ = NegConstant != 0 ? Add : Z;
-    SDValue Addc = DAG.getNode(ISD::ADDC, DL, DAG.getVTList(MVT::i64, MVT::Glue),
-                               AddOrZ, DAG.getConstant(-1ULL, DL, MVT::i64));
-    return DAG.getNode(ISD::ADDE, DL, VTs, LHS, DAG.getConstant(0, DL, MVT::i64),
+    SDValue Addc =
+        DAG.getNode(ISD::UADDO, DL, DAG.getVTList(MVT::i64, CarryType), AddOrZ,
----------------
diggerlin wrote:

 since the third arg of ISD::UADDC_CARRY is zero here ,
     I think it is OK to use the ISD::UADDO or ISD::UADDC_CARRY here. no matter using the second result of ISD::UADDO or ISD::UADDO as input of third arg of  `ISD::UADDO_CARRY`
     
  line 18326:    `return DAG.getNode(ISD::UADDO_CARRY, DL, VTs, LHS,DAG.getConstant(0, DL, MVT::i64), SDValue(Addc.getNode(), 1));`

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


More information about the llvm-commits mailing list