[llvm] [PowerPC] Add custom lowering for SADD overflow for i32 and i64 (PR #159255)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 7 12:26:23 PST 2025
================
@@ -12614,6 +12617,31 @@ SDValue PPCTargetLowering::LowerSSUBO(SDValue Op, SelectionDAG &DAG) const {
return DAG.getMergeValues({Sub, OverflowTrunc}, dl);
}
+SDValue PPCTargetLowering::LowerSADDO(SDValue Op, SelectionDAG &DAG) const {
+
+ SDLoc dl(Op);
+ SDValue LHS = Op.getOperand(0);
+ SDValue RHS = Op.getOperand(1);
+ EVT VT = Op.getNode()->getValueType(0);
+
+ SDValue Add = DAG.getNode(ISD::ADD, dl, VT, LHS, RHS);
+
+ SDValue Xor1 = DAG.getNode(ISD::XOR, dl, VT, LHS, RHS);
+ SDValue NotXor1 = DAG.getNOT(dl, Xor1, VT);
+ SDValue Xor2 = DAG.getNode(ISD::XOR, dl, VT, Add, LHS);
+
+ SDValue And = DAG.getNode(ISD::AND, dl, VT, NotXor1, Xor2);
----------------
RolandF77 wrote:
SDValue OverflowInSign
https://github.com/llvm/llvm-project/pull/159255
More information about the llvm-commits
mailing list