Skip to content

Commit b8a86d2

Browse files
committed
[DAG]: Addressed feedback
1 parent ad68cbd commit b8a86d2

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)