@@ -397,21 +397,10 @@ static bool interp__builtin_fmin(InterpState &S, CodePtr OpPC,
397
397
const Floating &LHS = getParam<Floating>(Frame, 0 );
398
398
const Floating &RHS = getParam<Floating>(Frame, 1 );
399
399
400
- Floating Result;
401
-
402
- if (IsNumBuiltin) {
403
- Result = llvm::minimumnum (LHS.getAPFloat (), RHS.getAPFloat ());
404
- } else {
405
- // When comparing zeroes, return -0.0 if one of the zeroes is negative.
406
- if (LHS.isZero () && RHS.isZero () && RHS.isNegative ())
407
- Result = RHS;
408
- else if (LHS.isNan () || RHS < LHS)
409
- Result = RHS;
410
- else
411
- Result = LHS;
412
- }
413
-
414
- S.Stk .push <Floating>(Result);
400
+ if (IsNumBuiltin)
401
+ S.Stk .push <Floating>(llvm::minimumnum (LHS.getAPFloat (), RHS.getAPFloat ()));
402
+ else
403
+ S.Stk .push <Floating>(minnum (LHS.getAPFloat (), RHS.getAPFloat ()));
415
404
return true ;
416
405
}
417
406
@@ -421,21 +410,10 @@ static bool interp__builtin_fmax(InterpState &S, CodePtr OpPC,
421
410
const Floating &LHS = getParam<Floating>(Frame, 0 );
422
411
const Floating &RHS = getParam<Floating>(Frame, 1 );
423
412
424
- Floating Result;
425
-
426
- if (IsNumBuiltin) {
427
- Result = llvm::maximumnum (LHS.getAPFloat (), RHS.getAPFloat ());
428
- } else {
429
- // When comparing zeroes, return +0.0 if one of the zeroes is positive.
430
- if (LHS.isZero () && RHS.isZero () && LHS.isNegative ())
431
- Result = RHS;
432
- else if (LHS.isNan () || RHS > LHS)
433
- Result = RHS;
434
- else
435
- Result = LHS;
436
- }
437
-
438
- S.Stk .push <Floating>(Result);
413
+ if (IsNumBuiltin)
414
+ S.Stk .push <Floating>(llvm::maximumnum (LHS.getAPFloat (), RHS.getAPFloat ()));
415
+ else
416
+ S.Stk .push <Floating>(maxnum (LHS.getAPFloat (), RHS.getAPFloat ()));
439
417
return true ;
440
418
}
441
419
0 commit comments