================
@@ -452,24 +464,32 @@ def CIR_StoreOp : CIR_Op<"store", [
     a volatile store. Store's can be marked atomic by using
     `atomic(<mem_order>)`.
 
-    `align` can be used to specify an alignment that's different from the
+    `alignment` can be used to specify an alignment that's different from the
     default, which is computed from `result`'s type ABI data layout.
 
     Example:
 
     ```mlir
     // Store a function argument to local storage, address in %0.
     cir.store %arg0, %0 : i32, !cir.ptr<i32>
+
+    // Perform a volatile store into memory location at the address in %0.
+    cir.store volatile %arg0, %0 : i32, !cir.ptr<i32>
+
+    // Others
+    cir.store align(16) atomic(seq_cst) %x, %addr : i32, !cir.ptr<i32>
     ```
   }];
 
   let arguments = (ins CIR_AnyType:$value,
                        Arg<CIR_PointerType, "the address to store the value",
                            [MemWrite]>:$addr,
                        OptionalAttr<I64Attr>:$alignment,
+                       UnitAttr:$is_volatile,
                        OptionalAttr<CIR_MemOrder>:$mem_order);
----------------
xlauko wrote:

same reordering here:

```suggestion
                       UnitAttr:$is_volatile,
                       OptionalAttr<I64Attr>:$alignment,
                       OptionalAttr<CIR_MemOrder>:$mem_order);
```

https://github.com/llvm/llvm-project/pull/156124
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to