[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