================
@@ -507,6 +507,17 @@ static llvm::Value *EmitPostAtomicMinMax(CGBuilderTy
&Builder,
bool IsSigned,
llvm::Value *OldVal,
llvm::Value *RHS) {
+ const bool IsFP = OldVal->getType()->isFloatingPointTy();
+
+ if (IsFP) {
+ llvm::Intrinsic::ID IID = (Op == AtomicExpr::AO__atomic_max_fetch ||
+ Op == AtomicExpr::AO__scoped_atomic_max_fetch)
+ ? llvm::Intrinsic::maxnum
+ : llvm::Intrinsic::minnum;
+
+ return Builder.CreateBinaryIntrinsic(IID, OldVal, RHS, nullptr, "newval");
----------------
efriedma-quic wrote:
```suggestion
return Builder.CreateBinaryIntrinsic(IID, OldVal, RHS, FMFSource(),
"newval");
```
nullptr technically works, but it unclear what the type of the value is
supposed to be.
https://github.com/llvm/llvm-project/pull/160330
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits