[clang] [Clang] Add support for fp when using min_fetch/max_fetch atomics (PR #160330)

via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 23 08:46:59 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions c,cpp -- clang/test/CodeGen/AArch64/atomic-ops-float-check-minmax.c clang/lib/CodeGen/CGAtomic.cpp
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/clang/lib/CodeGen/CGAtomic.cpp b/clang/lib/CodeGen/CGAtomic.cpp
index 99a06e527..4e195ca0e 100644
--- a/clang/lib/CodeGen/CGAtomic.cpp
+++ b/clang/lib/CodeGen/CGAtomic.cpp
@@ -518,20 +518,23 @@ static llvm::Value *EmitPostAtomicMinMax(CGBuilderTy &Builder,
 
   case AtomicExpr::AO__atomic_max_fetch:
   case AtomicExpr::AO__scoped_atomic_max_fetch:
-    Pred = IsFP ? llvm::CmpInst::FCMP_OGT
-                : (IsSigned ? llvm::CmpInst::ICMP_SGT : llvm::CmpInst::ICMP_UGT);
+    Pred = IsFP
+               ? llvm::CmpInst::FCMP_OGT
+               : (IsSigned ? llvm::CmpInst::ICMP_SGT : llvm::CmpInst::ICMP_UGT);
     break;
 
   case AtomicExpr::AO__atomic_min_fetch:
   case AtomicExpr::AO__scoped_atomic_min_fetch:
-    Pred = IsFP ? llvm::CmpInst::FCMP_OLT
-                : (IsSigned ? llvm::CmpInst::ICMP_SLT : llvm::CmpInst::ICMP_ULT);
+    Pred = IsFP
+               ? llvm::CmpInst::FCMP_OLT
+               : (IsSigned ? llvm::CmpInst::ICMP_SLT : llvm::CmpInst::ICMP_ULT);
     break;
   }
 
-  llvm::Value *Cmp = IsFP
-      ? static_cast<llvm::Value*>(Builder.CreateFCmp(Pred, OldVal, RHS, "tst"))
-      : static_cast<llvm::Value*>(Builder.CreateICmp(Pred, OldVal, RHS, "tst"));
+  llvm::Value *Cmp = IsFP ? static_cast<llvm::Value *>(
+                                Builder.CreateFCmp(Pred, OldVal, RHS, "tst"))
+                          : static_cast<llvm::Value *>(
+                                Builder.CreateICmp(Pred, OldVal, RHS, "tst"));
 
   return Builder.CreateSelect(Cmp, OldVal, RHS, "newval");
 }

``````````

</details>


https://github.com/llvm/llvm-project/pull/160330


More information about the cfe-commits mailing list