================
@@ -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

Reply via email to