[llvm] 58bf9ac - [NVPTX] Remove unsupported 'seq_cst' test (#156088)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 29 13:22:38 PDT 2025
Author: Alex MacLean
Date: 2025-08-29T13:22:34-07:00
New Revision: 58bf9aca21d5e3a6b284802a6ad97319c5719221
URL: https://github.com/llvm/llvm-project/commit/58bf9aca21d5e3a6b284802a6ad97319c5719221
DIFF: https://github.com/llvm/llvm-project/commit/58bf9aca21d5e3a6b284802a6ad97319c5719221.diff
LOG: [NVPTX] Remove unsupported 'seq_cst' test (#156088)
The NVPTX backend does not currently support correctly lowering
`atomicrmw` with `seq_cst` of any size. Remove a test which erroneously
hit this case and add logic to appropriately error out when this
ordering is encountered, instead of emitting invalid PTX.
In the long term, we should use `fence.sc`, similar to other atomic
operations, to support this ordering.
Added:
Modified:
llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
llvm/test/CodeGen/NVPTX/atomics-b128.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp b/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
index ee1ca4538554b..f9bdc09935330 100644
--- a/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
+++ b/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
@@ -290,7 +290,8 @@ void NVPTXInstPrinter::printAtomicCode(const MCInst *MI, int OpNum,
O << ".acq_rel";
return;
case NVPTX::Ordering::SequentiallyConsistent:
- O << ".seq_cst";
+ report_fatal_error(
+ "NVPTX AtomicCode Printer does not support \"seq_cst\" ordering.");
return;
case NVPTX::Ordering::Volatile:
O << ".volatile";
diff --git a/llvm/test/CodeGen/NVPTX/atomics-b128.ll b/llvm/test/CodeGen/NVPTX/atomics-b128.ll
index a6aa97a614151..02dfb4685dd16 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-b128.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-b128.ll
@@ -1024,10 +1024,10 @@ define void @test_atomicrmw_xchg_const() {
; CHECK-NEXT: {
; CHECK-NEXT: .reg .b128 amt, dst;
; CHECK-NEXT: mov.b128 amt, {%rd2, %rd1};
-; CHECK-NEXT: atom.seq_cst.sys.shared.exch.b128 dst, [si128], amt;
+; CHECK-NEXT: atom.relaxed.sys.shared.exch.b128 dst, [si128], amt;
; CHECK-NEXT: mov.b128 {%rd3, %rd4}, dst;
; CHECK-NEXT: }
; CHECK-NEXT: ret;
- %res = atomicrmw xchg ptr addrspace(3) @si128, i128 23 seq_cst
+ %res = atomicrmw xchg ptr addrspace(3) @si128, i128 23 monotonic
ret void
}
More information about the llvm-commits
mailing list