[llvm] [NVPTX] Add syncscope support for cmpxchg (PR #140812)
Alex MacLean via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 2 10:07:54 PDT 2025
================
@@ -1836,37 +1896,54 @@ multiclass F_ATOMIC_2<RegTyInfo t, string sem_str, string as_str, string op_str,
}
}
-// has 3 operands
-multiclass F_ATOMIC_3<RegTyInfo t, string sem_str, string as_str, string op_str,
- SDPatternOperator op, list<Predicate> preds> {
- defvar asm_str = "atom" # sem_str # as_str # "." # op_str;
+multiclass F_ATOMIC_3<RegTyInfo t, string op_str> {
+ defvar asm_str = "atom${sem:sem}${scope:scope}${addsp:addsp}" # op_str # "\t$dst, [$addr], $b, $c;";
+
let mayLoad = 1, mayStore = 1, hasSideEffects = 1 in {
- def rr : BasicNVPTXInst<(outs t.RC:$dst),
- (ins ADDR:$addr, t.RC:$b, t.RC:$c),
- asm_str,
- [(set t.Ty:$dst, (op addr:$addr, t.Ty:$b, t.Ty:$c))]>,
- Requires<preds>;
+ def _rr : NVPTXInst<(outs t.RC:$dst),
----------------
AlexMaclean wrote:
Use a `BasicFlagsNVPTXInst` here
https://github.com/llvm/llvm-project/pull/140812
More information about the llvm-commits
mailing list