@@ -2485,9 +2485,8 @@ static SDValue foldSelectWithIdentityConstant(SDNode *N, SelectionDAG &DAG,
24852485 std::swap(N0, N1);
24862486
24872487 SDValue Cond, TVal, FVal;
2488- if (!sd_match(N1,
2489- m_SelectLike(m_Value(Cond), m_Value(TVal), m_Value(FVal))) ||
2490- !N1->hasOneUse()) {
2488+ if (!sd_match(N1, m_OneUse(m_SelectLike(m_Value(Cond), m_Value(TVal),
2489+ m_Value(FVal))))) {
24912490 return SDValue();
24922491 }
24932492
@@ -13858,9 +13857,8 @@ static SDValue tryToFoldExtendSelectLoad(SDNode *N, const TargetLowering &TLI,
1385813857 "Expected EXTEND dag node in input!");
1385913858
1386013859 SDValue Cond, Op1, Op2;
13861- if (!sd_match(N0,
13862- m_SelectLike(m_Value(Cond), m_Value(Op1), m_Value(Op2))) ||
13863- !N0->hasOneUse()) {
13860+ if (!sd_match(N0, m_OneUse(m_SelectLike(m_Value(Cond), m_Value(Op1),
13861+ m_Value(Op2))))) {
1386413862 return SDValue();
1386513863 }
1386613864
@@ -13885,7 +13883,7 @@ static SDValue tryToFoldExtendSelectLoad(SDNode *N, const TargetLowering &TLI,
1388513883
1388613884 SDValue Ext1 = DAG.getNode(Opcode, DL, VT, Op1);
1388713885 SDValue Ext2 = DAG.getNode(Opcode, DL, VT, Op2);
13888- return DAG.getSelect(DL, VT, N0->getOperand(0) , Ext1, Ext2);
13886+ return DAG.getSelect(DL, VT, Cond , Ext1, Ext2);
1388913887}
1389013888
1389113889/// Try to fold a sext/zext/aext dag node into a ConstantSDNode or
@@ -29620,13 +29618,13 @@ static SDValue takeInexpensiveLog2(SelectionDAG &DAG, const SDLoc &DL, EVT VT,
2962029618
2962129619 // c ? X : Y -> c ? Log2(X) : Log2(Y)
2962229620 SDValue Cond, TVal, FVal;
29623- if (sd_match(Op, m_SelectLike(m_Value(Cond), m_Value(TVal), m_Value(FVal))) &&
29624- Op->hasOneUse( )) {
29621+ if (sd_match(Op, m_OneUse( m_SelectLike(m_Value(Cond), m_Value(TVal),
29622+ m_Value(FVal))) )) {
2962529623 if (SDValue LogX =
2962629624 takeInexpensiveLog2(DAG, DL, VT, TVal, Depth + 1, AssumeNonZero))
2962729625 if (SDValue LogY =
2962829626 takeInexpensiveLog2(DAG, DL, VT, FVal, Depth + 1, AssumeNonZero))
29629- return DAG.getSelect(DL, VT, Op.getOperand(0) , LogX, LogY);
29627+ return DAG.getSelect(DL, VT, Cond , LogX, LogY);
2963029628 }
2963129629
2963229630 // log2(umin(X, Y)) -> umin(log2(X), log2(Y))
0 commit comments