Author: Timm Baeder Date: 2025-03-04T07:22:54+01:00 New Revision: e9fe95acf3b9ead924a6f059c8ca8a8aabc55575
URL: https://github.com/llvm/llvm-project/commit/e9fe95acf3b9ead924a6f059c8ca8a8aabc55575 DIFF: https://github.com/llvm/llvm-project/commit/e9fe95acf3b9ead924a6f059c8ca8a8aabc55575.diff LOG: [clang][bytecode][NFC] Use maxnum/minnum for fmax/fmin (#129643) Equivalent of https://github.com/llvm/llvm-project/pull/129630 for the bytecode interpreter. Added: Modified: clang/lib/AST/ByteCode/InterpBuiltin.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/ByteCode/InterpBuiltin.cpp b/clang/lib/AST/ByteCode/InterpBuiltin.cpp index b964906fb6594..df9c2bc24b15f 100644 --- a/clang/lib/AST/ByteCode/InterpBuiltin.cpp +++ b/clang/lib/AST/ByteCode/InterpBuiltin.cpp @@ -397,21 +397,10 @@ static bool interp__builtin_fmin(InterpState &S, CodePtr OpPC, const Floating &LHS = getParam<Floating>(Frame, 0); const Floating &RHS = getParam<Floating>(Frame, 1); - Floating Result; - - if (IsNumBuiltin) { - Result = llvm::minimumnum(LHS.getAPFloat(), RHS.getAPFloat()); - } else { - // When comparing zeroes, return -0.0 if one of the zeroes is negative. - if (LHS.isZero() && RHS.isZero() && RHS.isNegative()) - Result = RHS; - else if (LHS.isNan() || RHS < LHS) - Result = RHS; - else - Result = LHS; - } - - S.Stk.push<Floating>(Result); + if (IsNumBuiltin) + S.Stk.push<Floating>(llvm::minimumnum(LHS.getAPFloat(), RHS.getAPFloat())); + else + S.Stk.push<Floating>(minnum(LHS.getAPFloat(), RHS.getAPFloat())); return true; } @@ -421,21 +410,10 @@ static bool interp__builtin_fmax(InterpState &S, CodePtr OpPC, const Floating &LHS = getParam<Floating>(Frame, 0); const Floating &RHS = getParam<Floating>(Frame, 1); - Floating Result; - - if (IsNumBuiltin) { - Result = llvm::maximumnum(LHS.getAPFloat(), RHS.getAPFloat()); - } else { - // When comparing zeroes, return +0.0 if one of the zeroes is positive. - if (LHS.isZero() && RHS.isZero() && LHS.isNegative()) - Result = RHS; - else if (LHS.isNan() || RHS > LHS) - Result = RHS; - else - Result = LHS; - } - - S.Stk.push<Floating>(Result); + if (IsNumBuiltin) + S.Stk.push<Floating>(llvm::maximumnum(LHS.getAPFloat(), RHS.getAPFloat())); + else + S.Stk.push<Floating>(maxnum(LHS.getAPFloat(), RHS.getAPFloat())); return true; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits