Skip to content

Commit d1c5a08

Browse files
committed
Do the legality checks first
1 parent 2ac4080 commit d1c5a08

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
@@ -17281,12 +17281,12 @@ SDValue DAGCombiner::visitFREM(SDNode *N) {
1728117281

1728217282
// Lower frem N0, N1 => x - trunc(N0 / N1) * N1, providing N1 is an integer
1728317283
// power of 2.
17284-
if (DAG.isKnownToBeAPowerOfTwoFP(N1) &&
17285-
(Flags.hasNoSignedZeros() || DAG.isKnownNonNegativeFP(N0)) &&
17286-
!TLI.isOperationLegal(ISD::FREM, VT) &&
17284+
if (!TLI.isOperationLegal(ISD::FREM, VT) &&
1728717285
TLI.isOperationLegalOrCustom(ISD::FMUL, VT) &&
1728817286
TLI.isOperationLegalOrCustom(ISD::FDIV, VT) &&
17289-
TLI.isOperationLegalOrCustom(ISD::FTRUNC, VT)) {
17287+
TLI.isOperationLegalOrCustom(ISD::FTRUNC, VT) &&
17288+
DAG.isKnownToBeAPowerOfTwoFP(N1) &&
17289+
(Flags.hasNoSignedZeros() || DAG.isKnownNonNegativeFP(N0))) {
1729017290
SDValue Div = DAG.getNode(ISD::FDIV, DL, VT, N0, N1);
1729117291
SDValue Rnd = DAG.getNode(ISD::FTRUNC, DL, VT, Div);
1729217292
SDValue Mul = DAG.getNode(ISD::FMUL, DL, VT, Rnd, N1);

0 commit comments

Comments
 (0)