@@ -7620,6 +7620,7 @@ SDValue DAGCombiner::visitORLike(SDValue N0, SDValue N1, const SDLoc &DL) {
76207620static SDValue visitORCommutative(SelectionDAG &DAG, SDValue N0, SDValue N1,
76217621 SDNode *N) {
76227622 EVT VT = N0.getValueType();
7623+ SDLoc DL(N);
76237624
76247625 auto peekThroughResize = [](SDValue V) {
76257626 if (V->getOpcode() == ISD::ZERO_EXTEND || V->getOpcode() == ISD::TRUNCATE)
@@ -7642,30 +7643,30 @@ static SDValue visitORCommutative(SelectionDAG &DAG, SDValue N0, SDValue N1,
76427643 if (SDValue NotOperand = getBitwiseNotOperand(N01, N00,
76437644 /* AllowUndefs */ false)) {
76447645 if (peekThroughResize(NotOperand) == N1Resized)
7645- return DAG.getNode(ISD::OR, SDLoc(N), VT ,
7646- DAG.getZExtOrTrunc(N00, SDLoc(N), VT), N1);
7646+ return DAG.getNode(ISD::OR, DL, VT, DAG.getZExtOrTrunc(N00, DL, VT) ,
7647+ N1);
76477648 }
76487649
76497650 // fold (or (and (xor Y, -1), X), Y) -> (or X, Y)
76507651 if (SDValue NotOperand = getBitwiseNotOperand(N00, N01,
76517652 /* AllowUndefs */ false)) {
76527653 if (peekThroughResize(NotOperand) == N1Resized)
7653- return DAG.getNode(ISD::OR, SDLoc(N), VT ,
7654- DAG.getZExtOrTrunc(N01, SDLoc(N), VT), N1);
7654+ return DAG.getNode(ISD::OR, DL, VT, DAG.getZExtOrTrunc(N01, DL, VT) ,
7655+ N1);
76557656 }
76567657 }
76577658
76587659 SDValue X, Y;
76597660
76607661 // fold or (xor X, N1), N1 --> or X, N1
76617662 if (sd_match(N0, m_Xor(m_Value(X), m_Specific(N1))))
7662- return DAG.getNode(ISD::OR, SDLoc(N) , VT, X, N1);
7663+ return DAG.getNode(ISD::OR, DL , VT, X, N1);
76637664
76647665 // fold or (xor x, y), (x and/or y) --> or x, y
76657666 if (sd_match(N0, m_Xor(m_Value(X), m_Value(Y))) &&
76667667 (sd_match(N1, m_And(m_Specific(X), m_Specific(Y))) ||
76677668 sd_match(N1, m_Or(m_Specific(X), m_Specific(Y)))))
7668- return DAG.getNode(ISD::OR, SDLoc(N) , VT, X, Y);
7669+ return DAG.getNode(ISD::OR, DL , VT, X, Y);
76697670
76707671 if (SDValue R = foldLogicOfShifts(N, N0, N1, DAG))
76717672 return R;
0 commit comments