@@ -5726,37 +5726,6 @@ static SDValue PerformFMinMaxCombine(SDNode *N,
57265726 return SDValue ();
57275727}
57285728
5729- static SDValue PerformREMCombine (SDNode *N,
5730- TargetLowering::DAGCombinerInfo &DCI,
5731- CodeGenOptLevel OptLevel) {
5732- assert (N->getOpcode () == ISD::SREM || N->getOpcode () == ISD::UREM);
5733-
5734- // Don't do anything at less than -O2.
5735- if (OptLevel < CodeGenOptLevel::Default)
5736- return SDValue ();
5737-
5738- SelectionDAG &DAG = DCI.DAG ;
5739- SDLoc DL (N);
5740- EVT VT = N->getValueType (0 );
5741- bool IsSigned = N->getOpcode () == ISD::SREM;
5742- unsigned DivOpc = IsSigned ? ISD::SDIV : ISD::UDIV;
5743-
5744- const SDValue &Num = N->getOperand (0 );
5745- const SDValue &Den = N->getOperand (1 );
5746-
5747- for (const SDNode *U : Num->users ()) {
5748- if (U->getOpcode () == DivOpc && U->getOperand (0 ) == Num &&
5749- U->getOperand (1 ) == Den) {
5750- // Num % Den -> Num - (Num / Den) * Den
5751- return DAG.getNode (ISD::SUB, DL, VT, Num,
5752- DAG.getNode (ISD::MUL, DL, VT,
5753- DAG.getNode (DivOpc, DL, VT, Num, Den),
5754- Den));
5755- }
5756- }
5757- return SDValue ();
5758- }
5759-
57605729// (sign_extend|zero_extend (mul|shl) x, y) -> (mul.wide x, y)
57615730static SDValue combineMulWide (SDNode *N, TargetLowering::DAGCombinerInfo &DCI,
57625731 CodeGenOptLevel OptLevel) {
@@ -6428,9 +6397,6 @@ SDValue NVPTXTargetLowering::PerformDAGCombine(SDNode *N,
64286397 return PerformSETCCCombine (N, DCI, STI.getSmVersion ());
64296398 case ISD::SHL:
64306399 return PerformSHLCombine (N, DCI, OptLevel);
6431- case ISD::SREM:
6432- case ISD::UREM:
6433- return PerformREMCombine (N, DCI, OptLevel);
64346400 case ISD::STORE:
64356401 case NVPTXISD::StoreV2:
64366402 case NVPTXISD::StoreV4:
0 commit comments