reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
7534 if (SDValue V = DAG.simplifyShift(N0, N1)) 7537 EVT VT = N0.getValueType(); 7543 if (DAG.ComputeNumSignBits(N0) == OpSizeInBits) 7544 return N0; 7555 ConstantSDNode *N0C = getAsNonOpaqueConstant(N0); 7564 if (N1C && N0.getOpcode() == ISD::SHL && N1 == N0.getOperand(1)) { 7564 if (N1C && N0.getOpcode() == ISD::SHL && N1 == N0.getOperand(1)) { 7573 N0.getOperand(0), DAG.getValueType(ExtVT)); 7578 if (N0.getOpcode() == ISD::SRA) { 7594 if (ISD::matchBinaryPredicate(N1, N0.getOperand(1), SumOfShifts)) { 7600 return DAG.getNode(ISD::SRA, DL, VT, N0.getOperand(0), ShiftValue); 7609 if (N0.getOpcode() == ISD::SHL && N1C) { 7611 const ConstantSDNode *N01C = isConstOrConstSplat(N0.getOperand(1)); 7633 getShiftAmountTy(N0.getOperand(0).getValueType())); 7635 N0.getOperand(0), Amt); 7647 if (!LegalTypes && N0.getOpcode() == ISD::ADD && N0.hasOneUse() && N1C && 7647 if (!LegalTypes && N0.getOpcode() == ISD::ADD && N0.hasOneUse() && N1C && 7648 N0.getOperand(0).getOpcode() == ISD::SHL && 7649 N0.getOperand(0).getOperand(1) == N1 && N0.getOperand(0).hasOneUse()) { 7649 N0.getOperand(0).getOperand(1) == N1 && N0.getOperand(0).hasOneUse()) { 7650 if (ConstantSDNode *AddC = isConstOrConstSplat(N0.getOperand(1))) { 7651 SDValue Shl = N0.getOperand(0); 7679 return DAG.getNode(ISD::SRA, SDLoc(N), VT, N0, NewOp1); 7686 if (N0.getOpcode() == ISD::TRUNCATE && 7687 (N0.getOperand(0).getOpcode() == ISD::SRL || 7688 N0.getOperand(0).getOpcode() == ISD::SRA) && 7689 N0.getOperand(0).hasOneUse() && 7690 N0.getOperand(0).getOperand(1).hasOneUse() && N1C) { 7691 SDValue N0Op0 = N0.getOperand(0); 7712 if (DAG.SignBitIsZero(N0)) 7713 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, N1);