Skip to content

Commit ad68cbd

Browse files
committed
[DAG]: Refactored takeInexpensiveLog2
1 parent 86f6692 commit ad68cbd

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29619,12 +29619,13 @@ static SDValue takeInexpensiveLog2(SelectionDAG &DAG, const SDLoc &DL, EVT VT,
2961929619
}
2962029620

2962129621
// c ? X : Y -> c ? Log2(X) : Log2(Y)
29622-
if ((Op.getOpcode() == ISD::SELECT || Op.getOpcode() == ISD::VSELECT) &&
29623-
Op.hasOneUse()) {
29624-
if (SDValue LogX = takeInexpensiveLog2(DAG, DL, VT, Op.getOperand(1),
29625-
Depth + 1, AssumeNonZero))
29626-
if (SDValue LogY = takeInexpensiveLog2(DAG, DL, VT, Op.getOperand(2),
29627-
Depth + 1, AssumeNonZero))
29622+
SDValue Cond, TVal, FVal;
29623+
if (sd_match(Op, m_SelectLike(m_Value(Cond), m_Value(TVal), m_Value(FVal))) &&
29624+
Op->hasOneUse()) {
29625+
if (SDValue LogX =
29626+
takeInexpensiveLog2(DAG, DL, VT, TVal, Depth + 1, AssumeNonZero))
29627+
if (SDValue LogY =
29628+
takeInexpensiveLog2(DAG, DL, VT, FVal, Depth + 1, AssumeNonZero))
2962829629
return DAG.getSelect(DL, VT, Op.getOperand(0), LogX, LogY);
2962929630
}
2963029631

0 commit comments

Comments
 (0)