@@ -598,7 +598,7 @@ namespace {
598
598
SDValue foldLogicOfSetCCs(bool IsAnd, SDValue N0, SDValue N1,
599
599
const SDLoc &DL);
600
600
SDValue foldSubToUSubSat(EVT DstVT, SDNode *N, const SDLoc &DL);
601
- SDValue foldABSToABD(SDNode *N);
601
+ SDValue foldABSToABD(SDNode *N, const SDLoc &DL );
602
602
SDValue unfoldMaskedMerge(SDNode *N);
603
603
SDValue unfoldExtremeBitClearingToShifts(SDNode *N);
604
604
SDValue SimplifySetCC(EVT VT, SDValue N0, SDValue N1, ISD::CondCode Cond,
@@ -10720,7 +10720,7 @@ SDValue DAGCombiner::visitSHLSAT(SDNode *N) {
10720
10720
// (ABS (SUB (EXTEND a), (EXTEND b))).
10721
10721
// (TRUNC (ABS (SUB (EXTEND a), (EXTEND b)))).
10722
10722
// Generates UABD/SABD instruction.
10723
- SDValue DAGCombiner::foldABSToABD(SDNode *N) {
10723
+ SDValue DAGCombiner::foldABSToABD(SDNode *N, const SDLoc &DL ) {
10724
10724
EVT SrcVT = N->getValueType(0);
10725
10725
10726
10726
if (N->getOpcode() == ISD::TRUNCATE)
@@ -10732,7 +10732,6 @@ SDValue DAGCombiner::foldABSToABD(SDNode *N) {
10732
10732
EVT VT = N->getValueType(0);
10733
10733
SDValue AbsOp1 = N->getOperand(0);
10734
10734
SDValue Op0, Op1;
10735
- SDLoc DL(N);
10736
10735
10737
10736
if (AbsOp1.getOpcode() != ISD::SUB)
10738
10737
return SDValue();
@@ -10791,9 +10790,10 @@ SDValue DAGCombiner::foldABSToABD(SDNode *N) {
10791
10790
SDValue DAGCombiner::visitABS(SDNode *N) {
10792
10791
SDValue N0 = N->getOperand(0);
10793
10792
EVT VT = N->getValueType(0);
10793
+ SDLoc DL(N);
10794
10794
10795
10795
// fold (abs c1) -> c2
10796
- if (SDValue C = DAG.FoldConstantArithmetic(ISD::ABS, SDLoc(N) , VT, {N0}))
10796
+ if (SDValue C = DAG.FoldConstantArithmetic(ISD::ABS, DL , VT, {N0}))
10797
10797
return C;
10798
10798
// fold (abs (abs x)) -> (abs x)
10799
10799
if (N0.getOpcode() == ISD::ABS)
@@ -10802,7 +10802,7 @@ SDValue DAGCombiner::visitABS(SDNode *N) {
10802
10802
if (DAG.SignBitIsZero(N0))
10803
10803
return N0;
10804
10804
10805
- if (SDValue ABD = foldABSToABD(N))
10805
+ if (SDValue ABD = foldABSToABD(N, DL ))
10806
10806
return ABD;
10807
10807
10808
10808
// fold (abs (sign_extend_inreg x)) -> (zero_extend (abs (truncate x)))
@@ -10812,7 +10812,6 @@ SDValue DAGCombiner::visitABS(SDNode *N) {
10812
10812
if (TLI.isTruncateFree(VT, ExtVT) && TLI.isZExtFree(ExtVT, VT) &&
10813
10813
TLI.isTypeDesirableForOp(ISD::ABS, ExtVT) &&
10814
10814
hasOperation(ISD::ABS, ExtVT)) {
10815
- SDLoc DL(N);
10816
10815
return DAG.getNode(
10817
10816
ISD::ZERO_EXTEND, DL, VT,
10818
10817
DAG.getNode(ISD::ABS, DL, ExtVT,
@@ -14720,7 +14719,7 @@ SDValue DAGCombiner::visitTRUNCATE(SDNode *N) {
14720
14719
if (SDValue V = foldSubToUSubSat(VT, N0.getNode(), DL))
14721
14720
return V;
14722
14721
14723
- if (SDValue ABD = foldABSToABD(N))
14722
+ if (SDValue ABD = foldABSToABD(N, DL ))
14724
14723
return ABD;
14725
14724
14726
14725
// Attempt to pre-truncate BUILD_VECTOR sources.
0 commit comments