Skip to content

Commit f3a99cc

Browse files
committed
Do the legality checks first
1 parent 532116a commit f3a99cc

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

1738017380
// Lower frem N0, N1 => x - trunc(N0 / N1) * N1, providing N1 is an integer
1738117381
// power of 2.
17382-
if (DAG.isKnownToBeAPowerOfTwoFP(N1) &&
17383-
(Flags.hasNoSignedZeros() || DAG.isKnownNonNegativeFP(N0)) &&
17384-
!TLI.isOperationLegal(ISD::FREM, VT) &&
17382+
if (!TLI.isOperationLegal(ISD::FREM, VT) &&
1738517383
TLI.isOperationLegalOrCustom(ISD::FMUL, VT) &&
1738617384
TLI.isOperationLegalOrCustom(ISD::FDIV, VT) &&
17387-
TLI.isOperationLegalOrCustom(ISD::FTRUNC, VT)) {
17385+
TLI.isOperationLegalOrCustom(ISD::FTRUNC, VT) &&
17386+
DAG.isKnownToBeAPowerOfTwoFP(N1) &&
17387+
(Flags.hasNoSignedZeros() || DAG.isKnownNonNegativeFP(N0))) {
1738817388
SDValue Div = DAG.getNode(ISD::FDIV, DL, VT, N0, N1);
1738917389
SDValue Rnd = DAG.getNode(ISD::FTRUNC, DL, VT, Div);
1739017390
SDValue Mul = DAG.getNode(ISD::FMUL, DL, VT, Rnd, N1);

0 commit comments

Comments
 (0)