Skip to content

Commit db0b8a1

Browse files
committed
Do the legality checks first
1 parent e1a6571 commit db0b8a1

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17341,12 +17341,12 @@ SDValue DAGCombiner::visitFREM(SDNode *N) {
1734117341

1734217342
// Lower frem N0, N1 => x - trunc(N0 / N1) * N1, providing N1 is an integer
1734317343
// power of 2.
17344-
if (DAG.isKnownToBeAPowerOfTwoFP(N1) &&
17345-
(Flags.hasNoSignedZeros() || DAG.isKnownNonNegativeFP(N0)) &&
17346-
!TLI.isOperationLegal(ISD::FREM, VT) &&
17344+
if (!TLI.isOperationLegal(ISD::FREM, VT) &&
1734717345
TLI.isOperationLegalOrCustom(ISD::FMUL, VT) &&
1734817346
TLI.isOperationLegalOrCustom(ISD::FDIV, VT) &&
17349-
TLI.isOperationLegalOrCustom(ISD::FTRUNC, VT)) {
17347+
TLI.isOperationLegalOrCustom(ISD::FTRUNC, VT) &&
17348+
DAG.isKnownToBeAPowerOfTwoFP(N1) &&
17349+
(Flags.hasNoSignedZeros() || DAG.isKnownNonNegativeFP(N0))) {
1735017350
SDValue Div = DAG.getNode(ISD::FDIV, DL, VT, N0, N1);
1735117351
SDValue Rnd = DAG.getNode(ISD::FTRUNC, DL, VT, Div);
1735217352
SDValue Mul = DAG.getNode(ISD::FMUL, DL, VT, Rnd, N1);

0 commit comments

Comments
 (0)