Loading llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +7 −10 Original line number Diff line number Diff line Loading @@ -2976,11 +2976,10 @@ SDValue DAGCombiner::visitSUB(SDNode *N) { // FIXME: Refactor this and xor and other similar operations together. if (N0 == N1) return tryFoldToZero(DL, TLI, VT, DAG, LegalOperations); if (DAG.isConstantIntBuildVectorOrConstantInt(N0) && DAG.isConstantIntBuildVectorOrConstantInt(N1)) { // fold (sub c1, c2) -> c1-c2 return DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, {N0, N1}); } // fold (sub c1, c2) -> c3 if (SDValue C = DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, {N0, N1})) return C; if (SDValue NewSel = foldBinOpIntoSelect(N)) return NewSel; Loading Loading @@ -3300,11 +3299,9 @@ SDValue DAGCombiner::visitSUBSAT(SDNode *N) { if (N0 == N1) return DAG.getConstant(0, DL, VT); if (DAG.isConstantIntBuildVectorOrConstantInt(N0) && DAG.isConstantIntBuildVectorOrConstantInt(N1)) { // fold (sub_sat c1, c2) -> c3 return DAG.FoldConstantArithmetic(N->getOpcode(), DL, VT, {N0, N1}); } if (SDValue C = DAG.FoldConstantArithmetic(N->getOpcode(), DL, VT, {N0, N1})) return C; // fold (sub_sat x, 0) -> x if (isNullConstant(N1)) Loading Loading
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +7 −10 Original line number Diff line number Diff line Loading @@ -2976,11 +2976,10 @@ SDValue DAGCombiner::visitSUB(SDNode *N) { // FIXME: Refactor this and xor and other similar operations together. if (N0 == N1) return tryFoldToZero(DL, TLI, VT, DAG, LegalOperations); if (DAG.isConstantIntBuildVectorOrConstantInt(N0) && DAG.isConstantIntBuildVectorOrConstantInt(N1)) { // fold (sub c1, c2) -> c1-c2 return DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, {N0, N1}); } // fold (sub c1, c2) -> c3 if (SDValue C = DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, {N0, N1})) return C; if (SDValue NewSel = foldBinOpIntoSelect(N)) return NewSel; Loading Loading @@ -3300,11 +3299,9 @@ SDValue DAGCombiner::visitSUBSAT(SDNode *N) { if (N0 == N1) return DAG.getConstant(0, DL, VT); if (DAG.isConstantIntBuildVectorOrConstantInt(N0) && DAG.isConstantIntBuildVectorOrConstantInt(N1)) { // fold (sub_sat c1, c2) -> c3 return DAG.FoldConstantArithmetic(N->getOpcode(), DL, VT, {N0, N1}); } if (SDValue C = DAG.FoldConstantArithmetic(N->getOpcode(), DL, VT, {N0, N1})) return C; // fold (sub_sat x, 0) -> x if (isNullConstant(N1)) Loading