Skip to content

Commit e2cfd52

Browse files
committed
NaN handling fixes
1 parent 96d00a3 commit e2cfd52

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

llvm/lib/CodeGen/ExpandFp.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -262,11 +262,10 @@ class FRemExpander {
262262
Ret = B.CreateSelect(B.CreateFCmpOEQ(Y, ConstantFP::get(FremTy, 0.0)), Nan,
263263
Ret);
264264
FPClassTest NotNan = FPClassTest::fcInf | FPClassTest::fcFinite;
265-
Value *YNotNan = isKnownNeverNaN(Y, /*Depth=*/0, SQ)
266-
? B.getTrue()
267-
: B.createIsFPClass(Y, NotNan);
265+
Value *YNotNan =
266+
isKnownNeverNaN(Y, 0, SQ) ? B.getTrue() : B.createIsFPClass(Y, NotNan);
268267
Value *XFinite = isKnownNeverInfinity(X, 0, SQ)
269-
? B.getFalse()
268+
? B.getTrue()
270269
: B.createIsFPClass(X, FPClassTest::fcFinite);
271270
Value *C = B.CreateLogicalAnd(YNotNan, XFinite);
272271
Ret = B.CreateSelect(C, Ret, Nan);
@@ -300,7 +299,7 @@ class FRemExpander {
300299

301300
// We would return NaN in all corner cases handled here.
302301
// Hence, if NaNs are excluded, keep the result as it is.
303-
if (FMF.noNaNs())
302+
if (!FMF.noNaNs())
304303
Ret = handleInputCornerCases(Ret, X, Y, SQ);
305304

306305
Function *Fun = B.GetInsertBlock()->getParent();

0 commit comments

Comments
 (0)