@@ -12141,15 +12141,17 @@ SDValue DAGCombiner::visitSELECT(SDNode *N) {
1214112141 APInt C;
1214212142 if (sd_match(Cond1, m_ConstInt(C)) && hasUMin(VT)) {
1214312143 if (CC == ISD::SETUGT && Cond0 == N2 &&
12144- sd_match(N1, m_Add(m_Specific(N2), m_SpecificInt(~C))))
12145- return DAG.getNode(
12146- ISD::UMIN, DL, VT,
12147- DAG.getNode(ISD::ADD, DL, VT, N2, DAG.getConstant(~C, DL, VT)), N2);
12144+ sd_match(N1, m_Add(m_Specific(N2), m_SpecificInt(~C)))) {
12145+ SDValue AddC = DAG.getConstant(~C, DL, VT);
12146+ SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N2, AddC);
12147+ return DAG.getNode(ISD::UMIN, DL, VT, Add, N2);
12148+ }
1214812149 if (CC == ISD::SETULT && Cond0 == N1 &&
12149- sd_match(N2, m_Add(m_Specific(N1), m_SpecificInt(-C))))
12150- return DAG.getNode(
12151- ISD::UMIN, DL, VT, N1,
12152- DAG.getNode(ISD::ADD, DL, VT, N1, DAG.getConstant(-C, DL, VT)));
12150+ sd_match(N2, m_Add(m_Specific(N1), m_SpecificInt(-C)))) {
12151+ SDValue AddC = DAG.getConstant(-C, DL, VT);
12152+ SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N1, AddC);
12153+ return DAG.getNode(ISD::UMIN, DL, VT, N1, Add);
12154+ }
1215312155 }
1215412156 }
1215512157
0 commit comments