reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
7284 if (SDValue V = DAG.simplifyShift(N0, N1)) 7287 EVT VT = N0.getValueType(); 7300 if (N0.getOpcode() == ISD::AND) { 7301 SDValue N00 = N0->getOperand(0); 7302 SDValue N01 = N0->getOperand(1); 7320 ConstantSDNode *N0C = getAsNonOpaqueConstant(N0); 7336 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, NewOp1); 7344 if (N0.getOpcode() == ISD::SHL) { 7352 if (ISD::matchBinaryPredicate(N1, N0.getOperand(1), MatchOutOfRange)) 7362 if (ISD::matchBinaryPredicate(N1, N0.getOperand(1), MatchInRange)) { 7364 SDValue Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, N1, N0.getOperand(1)); 7365 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), Sum); 7374 if ((N0.getOpcode() == ISD::ZERO_EXTEND || 7375 N0.getOpcode() == ISD::ANY_EXTEND || 7376 N0.getOpcode() == ISD::SIGN_EXTEND) && 7377 N0.getOperand(0).getOpcode() == ISD::SHL) { 7378 SDValue N0Op0 = N0.getOperand(0); 7408 SDValue Ext = DAG.getNode(N0.getOpcode(), DL, VT, N0Op0.getOperand(0)); 7418 if (N0.getOpcode() == ISD::ZERO_EXTEND && N0.hasOneUse() && 7418 if (N0.getOpcode() == ISD::ZERO_EXTEND && N0.hasOneUse() && 7419 N0.getOperand(0).getOpcode() == ISD::SRL) { 7420 SDValue N0Op0 = N0.getOperand(0); 7437 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N0), VT, NewSHL); 7444 if (N1C && (N0.getOpcode() == ISD::SRL || N0.getOpcode() == ISD::SRA) && 7444 if (N1C && (N0.getOpcode() == ISD::SRL || N0.getOpcode() == ISD::SRA) && 7445 N0->getFlags().hasExact()) { 7446 if (ConstantSDNode *N0C1 = isConstOrConstSplat(N0.getOperand(1))) { 7451 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), 7453 return DAG.getNode(N0.getOpcode(), DL, VT, N0.getOperand(0), 7453 return DAG.getNode(N0.getOpcode(), DL, VT, N0.getOperand(0), 7464 if (N1C && N0.getOpcode() == ISD::SRL && N0.hasOneUse() && 7464 if (N1C && N0.getOpcode() == ISD::SRL && N0.hasOneUse() && 7466 if (ConstantSDNode *N0C1 = isConstOrConstSplat(N0.getOperand(1))) { 7475 Shift = DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), 7480 Shift = DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), 7483 SDLoc DL(N0); 7491 if (N0.getOpcode() == ISD::SRA && N1 == N0.getOperand(1) && 7491 if (N0.getOpcode() == ISD::SRA && N1 == N0.getOperand(1) && 7496 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), HiBitsMask); 7503 if ((N0.getOpcode() == ISD::ADD || N0.getOpcode() == ISD::OR) && 7503 if ((N0.getOpcode() == ISD::ADD || N0.getOpcode() == ISD::OR) && 7504 N0.getNode()->hasOneUse() && 7506 isConstantOrConstantVector(N0.getOperand(1), /* No Opaques */ true) && 7508 SDValue Shl0 = DAG.getNode(ISD::SHL, SDLoc(N0), VT, N0.getOperand(0), N1); 7508 SDValue Shl0 = DAG.getNode(ISD::SHL, SDLoc(N0), VT, N0.getOperand(0), N1); 7509 SDValue Shl1 = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1); 7512 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, Shl0, Shl1); 7516 if (N0.getOpcode() == ISD::MUL && N0.getNode()->hasOneUse() && 7516 if (N0.getOpcode() == ISD::MUL && N0.getNode()->hasOneUse() && 7518 isConstantOrConstantVector(N0.getOperand(1), /* No Opaques */ true)) { 7519 SDValue Shl = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1); 7521 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N0.getOperand(0), Shl);