diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 65fac01d58362..1c877b95d8f8a 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -4378,7 +4378,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID, : llvm::Intrinsic::umax, Op0, Op1, nullptr, "elt.max"); } else - Result = Builder.CreateMaxNum(Op0, Op1, "elt.max"); + Result = Builder.CreateMaxNum(Op0, Op1, /*FMFSource=*/nullptr, "elt.max"); return RValue::get(Result); } case Builtin::BI__builtin_elementwise_min: { @@ -4394,7 +4394,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID, : llvm::Intrinsic::umin, Op0, Op1, nullptr, "elt.min"); } else - Result = Builder.CreateMinNum(Op0, Op1, "elt.min"); + Result = Builder.CreateMinNum(Op0, Op1, /*FMFSource=*/nullptr, "elt.min"); return RValue::get(Result); } diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h index 933dbb306d1fc..67e357c600d3b 100644 --- a/llvm/include/llvm/IR/IRBuilder.h +++ b/llvm/include/llvm/IR/IRBuilder.h @@ -1005,23 +1005,27 @@ class IRBuilderBase { const Twine &Name = ""); /// Create call to the minnum intrinsic. - Value *CreateMinNum(Value *LHS, Value *RHS, const Twine &Name = "") { + Value *CreateMinNum(Value *LHS, Value *RHS, FMFSource FMFSource = {}, + const Twine &Name = "") { if (IsFPConstrained) { return CreateConstrainedFPUnroundedBinOp( - Intrinsic::experimental_constrained_minnum, LHS, RHS, nullptr, Name); + Intrinsic::experimental_constrained_minnum, LHS, RHS, FMFSource, + Name); } - return CreateBinaryIntrinsic(Intrinsic::minnum, LHS, RHS, nullptr, Name); + return CreateBinaryIntrinsic(Intrinsic::minnum, LHS, RHS, FMFSource, Name); } /// Create call to the maxnum intrinsic. - Value *CreateMaxNum(Value *LHS, Value *RHS, const Twine &Name = "") { + Value *CreateMaxNum(Value *LHS, Value *RHS, FMFSource FMFSource = {}, + const Twine &Name = "") { if (IsFPConstrained) { return CreateConstrainedFPUnroundedBinOp( - Intrinsic::experimental_constrained_maxnum, LHS, RHS, nullptr, Name); + Intrinsic::experimental_constrained_maxnum, LHS, RHS, FMFSource, + Name); } - return CreateBinaryIntrinsic(Intrinsic::maxnum, LHS, RHS, nullptr, Name); + return CreateBinaryIntrinsic(Intrinsic::maxnum, LHS, RHS, FMFSource, Name); } /// Create call to the minimum intrinsic.