[llvm-branch-commits] [llvm] [X86] Manage atomic store of fp -> int promotion in DAG (PR #197166)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue May 12 23:24:08 PDT 2026


================
@@ -222,6 +222,140 @@ define void @store_atomic_vec1_ptr(ptr %x, <1 x ptr> %v) nounwind {
   ret void
 }
 
+define void @store_atomic_vec1_bfloat(ptr %x, <1 x bfloat> %v) {
----------------
jofrn wrote:

The hook in x86 isel lowering only handles scalar floating point types.
`virtual AtomicExpansionKind shouldCastAtomicStoreInIR(StoreInst *SI) const {
    if (SI->getValueOperand()->getType()->isFloatingPointTy())
      return AtomicExpansionKind::CastToInteger;
    return AtomicExpansionKind::None;
}`
Therefore, we do need these. I understand what you are saying ; it will be much more difficult to modify the base class though. This statement was accurate: https://github.com/llvm/llvm-project/pull/197166#discussion_r3226321068

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


More information about the llvm-branch-commits mailing list