[llvm] [IR] Add elementwise modifier to atomic stores (PR #210672)
Harrison Hao via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 3 07:55:52 PDT 2026
================
@@ -11937,16 +11937,25 @@ operand. If the `store` is marked as `volatile`, then the optimizer is not
allowed to modify the number or order of execution of this `store` with other
{ref}`volatile operations <volatile>`. Only values of {ref}`first class <t_firstclass>` types of known size (i.e., not containing an {ref}`opaque structural type <t_opaque>`) can be stored.
-If the `store` is marked as `atomic`, it takes an extra {ref}`ordering <ordering>` and optional `syncscope("<target-scope>")` argument. The
-`acquire` and `acq_rel` orderings aren't valid on `store` instructions.
-Atomic loads produce {ref}`defined <memmodel>` results when they may see
-multiple atomic stores. The type of the pointee must be an integer, pointer,
+If the `store` is marked as `atomic`, it takes an extra
+{ref}`ordering <ordering>` and optional `syncscope("<target-scope>")`
+argument. The `acquire` and `acq_rel` orderings are not valid on `store`
+instructions. The type of the stored value must be an integer, pointer,
floating-point, or vector type whose bit width is a power of two greater than
-or equal to eight. `align` must be
-explicitly specified on atomic stores. Note: if the alignment is not greater or
-equal to the size of the `<value>` type, the atomic operation is likely to
-require a lock and have poor performance. `!nontemporal` does not have any
-defined semantics for atomic stores.
+or equal to eight.
+
+If the `elementwise` modifier is present, the instruction has
+{ref}`elementwise atomic semantics <elementwise-atomics>`. The stored value
----------------
harrisonGPU wrote:
Okay, updated.
https://github.com/llvm/llvm-project/pull/210672
More information about the llvm-commits
mailing list